我在寻找解决此问题的最佳实践的 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() 如下时..我无法访问工作单元或存储库,除非我实际上将它作为参数传递!这显然不是特别好。
人们如何解决这个问题?
提前致谢!
尼尔