我想知道使用 DBContext 实现交易的最佳方法是什么。特别是,

  • 如果我更改多个实体,DbContext.SaveChanges 是否在内部实现事务?
  • 如果我想多次调用 DbContext.SaveChanges(相同的上下文/不同的上下文),如何实现交易?
  • 最佳答案

  • 是的。 SaveChanges 在内部使用事务。
  • 使用 TransactionScope 将多次调用包装到 SaveChanges

  • 例子:
    using(var scope = new TransactionScope(TransactionScopeOption.Required,
        new TransactionOptions { IsolationLevel = IsolationLevel.ReadCommitted }))
    {
        // Do something
        context.SaveChanges();
        // Do something else
        context.SaveChanges();
    
        scope.Complete();
    }
    

    关于entity-framework - EF Code First DBContext 和事务,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6028626/

    10-17 00:58