EF 事务(非分布式事务)

在EF 中怎么使用事务?

这个问题纠结了我好久,直到有人跟我一起讨论,我和同事一起讨论查资料。

查的好多资料都是使用 TransactionScope,用 TransactionScope 可处理分布式事务。

using (TransactionScope scope = new TransactionScope())  
{  
  //具体代码内容
    scope.Complete();  
}  

这种方式可处理分布式事务。
而我在实际使用中是没法使用的。

所以我就一直找其他的方式,无意中看到某个网站的的database,然后我就采用了下面的方式:

using (var dbContext = new TopOnlineDbContext())
            {
                using (var scope = dbContext.Database.BeginTransaction())
                {
                    try
                    {
                        if (ids != null)
                        {
                            foreach (var id in ids)
                            {
                                T t = dbContext.Find<T>(id);
                                assfeedback.IsDel = true;
                                dbContext.Update<T>(t);
                            }
                        }
                        scope.Commit();//正常完成就可以提交
                        return 0;
                    }
                    catch (Exception ex)
                    {
                        scope.Rollback();//发生异常就回滚
                        return -1;
                    }
                }
            }

转载的别人的:原文链接:http://www.cnblogs.com/dawenyang/p/5664597.html

@陈卧龙的博客

原文地址:https://www.cnblogs.com/chenwolong/p/7307293.html