两个存储库可以共享相同的工作单元吗

本文关键字:共享 工作 单元 两个 存储 | 更新日期: 2023-09-27 18:21:18

在我的项目中,我有两个选项卡,在ViewManager类中,我使用以下代码添加并注册区域中的这些视图

IBondsUnitOfWork UnitOfWork = new BondsUnitOfWork(new TestEntities(DALUtilities.ProjConnectionString));
IRepo1 repo = new Repo1(UnitOfWork);
IRepo2 repo_second = new Repo2(UnitOfWork);

我的问题是,我可以将相同的UnitOfWork用于不同的存储库吗?

两个存储库可以共享相同的工作单元吗

是的,这样做没有限制。您可以在上面的级别控制您的数据访问,当您访问一些存储库并执行一些任务(如insertupdatedelete)时,这很好。只是一个伪代码示例,例如:

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();
}