TransactionScope和BeginTransaction

时间:2017-05-29 04:56:36

标签: mysql entity-framework-6

在EF6,MVC,MySQL场景中,使用EF TransactionScopeDBContext.BeginTransaction有什么区别? TransactionScope中没有明确的回滚。

应该是

using transactionscope
{
   using dbContext
   {
        .........
        .........
        dbContext.SaveChanges();
        .............
        .......
        dbContext.SaveChanges();
   }
   transactionscope.Complete();
  // there is no .Rollback method
}

或者

using dbContext
{
   using dbtx = dbContext.Database.BeginTransaction
   {
        .........
        .........
        dbContext.SaveChanges();
        .............
        .......
        dbContext.SaveChanges();
        dbtx.Commit()
        // and dbtx.Rollback()  when exception occurs
   }

}

有什么区别?

1 个答案:

答案 0 :(得分:0)

我不会注意区别。我不担心隔离级别。以下工作:要么全部回滚(不需要显式回滚),要么所有提交:

using (TransactionScope scope = new TransactionScope())
{
    ...
    db.SaveChanges();

    ...
    db.SaveChanges();
    scope.Complete();
}