在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
@陈卧龙的博客