0

ユーザーサービスには次の方法があります

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)>リポジトリレイヤー>サービスレイヤー>コントローラー(またはその他)。

4

2 に答える 2

1

@Predeepにはポイントがあります。Webプロジェクトに属するメソッドをサービスレイヤーに配置しないでください。別の依存関係を追加しているだけです。

サービス層は、リポジトリ層の上にある単なる層ではありません。これには、データベースまたはその他のデータソースからの情報を変更するロジックが含まれている可能性があります。データベースに対して何もする必要のない他のメソッドを追加することはまったく問題ありません。それがレイヤーの目的です。それ以外の場合は、そのレイヤーをスキップできます。

于 2010-11-28T07:16:32.797 に答える
1

あなたが目撃した例、それは悪い習慣のようです。サービスレイヤーに要求しているすべての情報が表示されている場合は、実際にはコントローラー自体で利用できます。この情報を取得するために、なぜアプリケーションの境界を越えたいのですか?

ただし、DBを正確に処理していないサービスレイヤーで操作を行う正当な理由がある場合があります。

あなたの場合、私はコントローラーでそのようなもののヘルパークラスを使用すると言います。

于 2010-11-28T07:09:46.360 に答える