3

ブロゴスフィアでは、Entity Framework 4 の優れた機能の 1 つは、汎用 ObjectSet の上に汎用リポジトリを作成できることであるという共通の合意があるようです。汎用リポジトリの実装例は、基本的に ObjectSet のラッパーであり、メソッド呼び出しを単純に変換します。意味のあるロジックはありません。しばらく考えた後、私は自問自答するところまで来ました: ObjectSet 自体がまだ提供していない、汎用リポジトリが私に与える利点は何ですか? ObjectSet には、必要な機能 (CRUD) がすべて含まれています。IEnumerable (さらには IQueryable) を実装しているため、必要なデータを正確に指定することを非常に簡単にするすべての Linq 拡張機能を提供します。いくつかの IRepository を介して迂回することを正確に正当化するものは何ですか?

よろしくお願いいたします。

ピーター。

4

1 に答える 1

0

リポジトリパターンを実装する理由は、自動化された単体テストのためにデータソースのモックを作成しやすくするためです。

モデルコンテキストがインターフェイス(たとえばIRepository)を実装し、ビジネスロジッククラスがコンストラクターを介してIRepositoryオブジェクトを渡すことを許可する場合(依存性注入)、単体テストは独自のIRepositoryデータオブジェクトを作成し、これらを単体テストに渡すことができます。つまり、外部データベースに対してテストするよりもはるかに簡単で信頼性の高いデータベースサポートなしで単体テストを実行できます。

于 2012-12-20T18:53:37.433 に答える