2016-01-15 33 views
0

我有一個問題涉及n-tier架構使用Entity Framework在數據訪問級別的網絡後端。 請與我分享您的經驗 - 您如何通過實體框架組織業務交易?實體框架和業務交易

  • 首先,我發現是使用Unit Of Work模式。那UoW
    對象是某種類型的存儲庫聚合器,他們之間共享相同的 DbContext。但我不確定這種方法可能對巨大的業務邏輯有用。
  • 第二種方法是具有Entity framework transaction factory將封裝新交易的創建業務層上像

    using (var transaction = transactionsFactory.Start()) 
    { 
        //business logic here 
    } 
    

,並且每個HTTP請求注入範圍之一。 後者在數據級我會打電話

 using (var db = dbContextFactory.GetContext()) 
    { 
     //data operations 
     db.SaveChanges(); 
    } 

要在同一事務執行DbContext操作。 該方法的缺點是需要允許distrubuted transactionsMS SQL Server

您使用了哪些方法?您有哪些優缺點?

+0

混合您的問題考慮BusinessLogic或DataAccess組織嗎? –

+0

@MaxKvt兩者。通過EF組織業務邏輯事務存在哪些方法。 –

回答