2014-09-10 54 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

相關問題