1.EF中使用事務:
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中使用事務的方法:
using (var scope=db.Transaction) { // 其他任務處理 … scope.Complete(); }