EF Code First DBContext和Transactions

时间:2011-05-17 09:10:31

标签: entity-framework transactions entity-framework-4.1 dbcontext

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

  1. 如果我更改了多个实体,DbContext.SaveChanges是否实现了事务内部交换?
  2. 如果我想多次拨打DbContext.SaveChanges(相同的联系人/不同的联系人),可以如何实现交易?

1 个答案:

答案 0 :(得分:72)

  1. 是。 SaveChanges在内部使用交易。
  2. 使用TransactionScope将多个来电换行至SaveChanges
  3. 示例:

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