2014-09-10 42 views
0

在我的项目,我有两个选项卡,并在ViewManager类我有下面的代码添加注册区域的观点,两个存储库可以共享相同的工作单元吗?

IBondsUnitOfWork UnitOfWork = new BondsUnitOfWork(new TestEntities(DALUtilities.ProjConnectionString)); 

IRepo1 repo = new Repo1(UnitOfWork); 

IRepo2 repo_second = new Repo2(UnitOfWork); 

我的问题是,我可以使用相同的UnitOfWork针对不同的仓库?

回答

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

好的谢谢。我在想,因为他们使用相同的上下文会影响两个选项卡。 – S52 2014-09-10 15:13:54

+0

不会,但请确保您掌握了上下文。 – 2014-09-10 17:59:42

相关问题