【问题标题】:TransactionScope and BeginTransactionTransactionScope 和 BeginTransaction
【发布时间】:2017-05-29 04:56:36
【问题描述】:

在EF6、MVC、MySQL场景下,使用EFTransactionScopeDBContext.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
   }

}

有什么区别?

【问题讨论】:

    标签: mysql entity-framework-6


    【解决方案1】:

    我不会注意差异。我不会担心隔离级别。以下工作:全部回滚(无需显式回滚)或全部提交:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-11
      相关资源
      最近更新 更多