過去数時間、答えを求めてグーグルで検索しましたが、答えが見つからなかったので、ここの誰かが私を正しい方向に向けてくれることを願っています.
TransactionScope 内で EF DbContext (Code-First) を使用してダーティ リードを行う方法を考えています。例えば
DbContext context = new MyEntities();
using(TransactionScope scope = new TransactionScope())
{
context.SomeTable.Add(someObject);
context.SaveChanges();
var objects = context.SomeTable.Where(...).Select(...); //times out here on the read, because the write above locks the tables
//modify each object
context.SaveChanges();
scope.Complete(); //transaction is a success only if the entire batch succeeds
}
次のように読み取り呼び出しをラップしようとしました。
using(TransactionScope scope2 = new TransactionScope(TransactionScopeOption.RequiresNew, new TransactionOptions{IsolationLEvel = IsolationLevel.ReadUncommitted}))
{
var objects = context.SomeTable.Where(...).Select(...); //times out here on the
}
適切なアプローチは何ですか?