この問題のベスト プラクティスを探している EF で少し問題が発生しました。
public void TestEntityFramework_UOWImplementation()
{
using (UnitOfWorkInventory uow = new UnitOfWorkInventory())
{
IMaterialRepository repos = new MaterialRepository(uow);
Material mat = GetMaterial("Mikes Material", 1);
mat.CostPrice = 20;
repos.InsertOrUpdate(mat);
uow.Commit();
}
}
private Material GetMaterial(string sku, int clientId)
{
IMaterialRepository repos = new MaterialRepository(new UnitOfWorkInventory();
return repos.Find(sku, clientId);
}
TestEntityFramework_UOWImplementation() メソッドでは、うまくいきました。自分の作業単位のスコープの作成を呼び出し、その中にリポジトリを作成します。
しかし、以下のように getMaterials() を実行したい場合は、実際にパラメーターとして渡さない限り、作業単位またはリポジトリにアクセスできません! これは明らかに特に良いことではありません。
人々はこの問題をどのように回避しますか??
前もって感謝します!
ニール