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();
}