在EF中正确的使用事务

1.EF中使用事务:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
   
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中使用事务的方法:

1
2
3
4
5
6
7
using (var scope=db.Transaction)
{
 
// 其他任务处理 …
 scope.Complete();
 
}

  

 

posted @   心之所向,砥砺前行。  阅读(1560)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示