在EF 中怎么使用事務?
這個問題糾結了我好久,直到有人跟我一起討論,我和同事一起討論查資料。
查的好多資料都是使用
using (TransactionScope scope = new TransactionScope()) { //具體代碼內容
scope.Complete(); }
這種方式。
而我在實際使用中是沒法使用的。
所以我就一直找其他的方式,無意中看到某個網站的的database,然后我就采用了下面的方式:
1 using (var dbContext = new TopOnlineDbContext()) 2 { 3 using (var scope = dbContext.Database.BeginTransaction()) 4 { 5 try
6 { 7 if (ids != null) 8 { 9 foreach (var id in ids) 10 { 11 T t = dbContext.Find<T>(id); 12 assfeedback.IsDel = true; 13 dbContext.Update<T>(t); 14 } 15 } 16 scope.Commit();//正常完成就可以提交
17 return 0; 18 } 19 catch (Exception ex) 20 { 21 scope.Rollback();//發生異常就回滾
22 return -1; 23 } 24 } 25 }
