Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 对于服务层来说,不使用';你不能处理数据库吗?_.net_Asp.net_Service Layer - Fatal编程技术网

.net 对于服务层来说,不使用';你不能处理数据库吗?

.net 对于服务层来说,不使用';你不能处理数据库吗?,.net,asp.net,service-layer,.net,Asp.net,Service Layer,在我的用户服务中有以下方法 Public Interface IUserService Sub AddUser(ByVal claimedidentifier As String, ByVal notes As String) Function GetAllUsers() As IList(Of User) Function GetUserByID(ByVal id As Integer) As User Sub UpdateUser(ByVal user As

在我的用户服务中有以下方法

Public Interface IUserService
    Sub AddUser(ByVal claimedidentifier As String, ByVal notes As String)
    Function GetAllUsers() As IList(Of User)
    Function GetUserByID(ByVal id As Integer) As User
    Sub UpdateUser(ByVal user As User)
    Sub SubmitChanges()

    ''# Below are methods that do not require database calls.
    Function GetUserIPAddress() As String
    Function GetUserBrowser() As String
    Function GetUserOperatingSystem() As String
    Function GetUserSubDomain() As String
End Interface
您会注意到有一些方法不处理数据库,但我觉得这是一个使用它们的好地方

这被认为是不好的做法吗

注意:我的存储库层严格处理数据库。我的心流走了


数据库>LINQ(DBML)>存储库层>服务层>控制器(或其他)。

您看到的示例,这似乎是一种不好的做法。如果您看到从服务层请求的所有信息实际上都可以在控制器本身上获得。为什么要跨越应用程序边界来获取此信息

然而,可能有一个合理的理由在服务层上有一个操作,该操作并不完全处理DB


在您的情况下,我会说在控制器中使用类似的帮助器类

@Predeep有道理。不要将属于webproject的方法放在服务层中。您只是添加了另一个依赖项

服务层不应该只是存储库层之上的一层。它可以包含修改来自数据库或任何其他数据源的信息的逻辑。添加其他与数据库无关的方法是非常好的。这就是图层的用途。否则,您可以跳过该层