2

Unit of Work と Repositories のパターンについてよく読んだことがあります。私が見たことがないのは、どのようにデータを取得するかということです。UoW は Select ステートメントには意味がありません。

n層アーキテクチャでasp.net MVCを使用しますが、この点はチュートリアルや記事では決して見ません:

これらのパターンを使用して、INNER JOIN の有無にかかわらず、どこでどのように SELECT ステートメントを呼び出すのですか? サービス層から DataContext を直接呼び出しますか?

4

1 に答える 1

3

Unit of Work はモデルを更新するためのものです。実際、クエリには必要ありません。リポジトリ パターンを使用する場合、すべてのデータベース関連 (選択、結合など) はリポジトリ実装の一部です。

コントローラーなどのリポジトリー・コンシューマーは、具体的なリポジトリーが DI コンテナーによって注入される間、リポジトリー・インターフェース (抽象化) に依存します。コンシューマーはデータベースやそこからのものを見ることはありません。コントローラーが必要として理解するオブジェクトを返す必要があるリポジトリメソッドを見るだけです(ROMエンティティを返しても、コントローラーはそれがエンティティであることを知りません)。

重要なことの 1 つは、リポジトリ インターフェイスがHOWではなくWHATを定義することを理解することです。実装は「方法」を扱います。これは、コントローラーがクエリを作成するのではなく、リポジトリが作成することを意味します。欲しいものを尋ねるだけで、魔法のように届けてくれます。

于 2013-10-24T18:48:50.547 に答える