在EF 中怎麼使用事務? 這個問題糾結了我好久,直到有人跟我一起討論,我和同事一起討論查資料。 查的好多資料都是使用 這種方式。而我在實際使用中是沒法使用的。 所以我就一直找其他的方式,無意中看到某個網站的的database,然後我就採用了下麵的方式: using (var dbContext = ...
在EF 中怎麼使用事務?
這個問題糾結了我好久,直到有人跟我一起討論,我和同事一起討論查資料。
查的好多資料都是使用
- 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;
}
}
}