EF代码首先DBContext和事务
我想知道什么是用DBContext
实现事务的最好方法。 尤其是,
- 如果我更改多个实体,
DbContext.SaveChanges
实现事务内部吗? - 如果我想多次调用
DbContext.SaveChanges
(同一个contxet /不同的contxets),如何实现事务?
- 是。
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(); }