52

我想知道用DBContext. 尤其,

  1. DbContext.SaveChanges如果我更改多个实体,是否在内部实现事务?
  2. 如果我想DbContext.SaveChanges多次调用(相同的contxet/不同的contxets),如何实现交易?
4

1 回答 1

74
  1. 是的。SaveChanges在内部使用事务。
  2. 用于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();
}
于 2011-05-17T09:15:32.787 回答