在我的项目中,我有两个标签,在ViewManager
类中,我有以下代码添加注册区域的视图,
IBondsUnitOfWork UnitOfWork = new BondsUnitOfWork(new TestEntities(DALUtilities.ProjConnectionString));
IRepo1 repo = new Repo1(UnitOfWork);
IRepo2 repo_second = new Repo2(UnitOfWork);
我的问题是我可以对不同的存储库使用相同的UnitOfWork
吗?
答案 0 :(得分:0)
是的,这样做没有任何限制。您可以在上述级别控制数据访问,这在访问某些存储库并执行insert
,update
,delete
等任务时非常有用。只是一个伪代码样本,样本:
IBondsUnitOfWork unitOfWork = new BondsUnitOfWork(new TestEntities(DALUtilities.ProjConnectionString));
try
{
unitOfWork.Open();
unitOfWork.BeginTransaction();
IRepo1 repo = new Repo1(unitOfWork);
repo.Update(obj);
IRepo2 repo_second = new Repo2(unitOfWork);
repo.Add(obj2);
unitOfWork.Commit();
}
catch (Exception ex)
{
unitOfWork.RollBack();
// catch exception here...
// log..
}
finally
{
unitOfWork.Close();
}