0

2つの異なるメソッドがある場合-1つはユーザーを削除し、もう1つはユーザーのアドレスを削除します(引数のために、それらを削除する必要があり、非アクティブに設定できないと仮定します)。各メソッドがレコードを削除するためにそのタイプのリポジトリを作成する場合、最初のメソッドでObjectContextを作成し、それを他のメソッドに渡すことは良い習慣と見なされますか?もしそうなら、それは値または参照によって渡されるべきですか?これを行うと、どのような問題が発生する可能性がありますか?

4

1 に答える 1

2

はい、それは有効なアプローチです。1つのコンテキストを共有して複数のリポジトリに作用し、特定のユースケースを実現するパターンは、作業単位パターンと呼ばれます。

http://blogs.msdn.com/b/adonet/archive/2009/06/16/using-repository-and-unit-of-work-patterns-with-entity-framework-4-0.aspx

http://joel.net/repository-and-unit-of-work-for-entity-framework-ef4-for-unit-testing

トランザクションの整合性が必要な場合は、コンテキストを共有する必要があることに注意してください。個別のコンテキストを使用していて、2回目の削除が失敗した場合、最初の削除をロールバックする方法はありません。

于 2012-10-04T17:33:28.450 に答える