1

次のような多くのリポジトリ クラスがあります。

public class ProfileRepository : IProfileRepository{
     private MyEntities myEnt = new MyEntites();
     ...
}

クラスは、MyEntitiesEntity Framework を使用して .edmx ファイルで生成されたエンティティです。私は常にこのオブジェクトをすべてのリポジトリ クラスで使用しており、すべてのリポジトリ クラスはコントローラーに注入されています。リポジトリ クラスにオブジェクトを挿入する方法はありますか?それは良いmyEnt方法ですか?同時実行でも同じように機能しますか?

4

2 に答える 2

0

MyEntitiesあなたの文脈です、私は仮定しています。もしそうなら、そうです、これはあなたのコンテキストをあなたのリポジトリに注入するための良い習慣です。このようにして、リポジトリをモックでき、単体テストでデータベース(または他の永続ストア)の接続性を気にすることなく機能をテストできます。

于 2012-08-30T21:00:16.413 に答える
0

The answer is "yes".

The rationale is as follows: by creating the context instance in your repository you are NOT allowing the caller to control the lifetime of the context.

For example, in web-based scenarios, you don't want your context to be recreated with each creation of an instance of the repository class. Rather you want the context to live as long as the processing of a request lasts on the server.

于 2012-08-30T21:05:44.097 に答える