在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