在EF中正確的使用事務


1.EF中使用事務:

  
  
using (TransactionScope tran = new TransactionScope())  
{  
    try  
    {  
       using(var _context = new DbContext())
    {
         //執行相關操作
     _context.SaveChanges();  
    }
       
      using(var _context2 = new DbContext())
    {
      //執行相關操作
    _context2.SaveChanges();  

    }
        
        tran.Complete();  
    }  
    catch (Exception ex)  
    {  
        //執行錯誤處理
    }  
}  
   

  之所以使用兩個 using(var _context2= new DbContext())是為了解決有可能出現的“事務中出現異常回滾,數據庫數據已經回滾,但是實體模型緩存沒有回滾”的問題

 

2.另付PetaPoco中使用事務的方法:

using (var scope=db.Transaction)
{

// 其他任務處理 …
 scope.Complete();

} 

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM