EF代码首先DBContext和事务

我想知道什么是用DBContext实现事务的最好方法。 尤其是,

  1. 如果我更改多个实体, DbContext.SaveChanges实现事务内部吗?
  2. 如果我想多次调用DbContext.SaveChanges (同一个contxet /不同的contxets),如何实现事务?
  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(); }