Transaction IsolationLevelを設定せずにLIN2SQLの単一クエリでNOLOCKを使用する方法はありますか?私はより大きな(分散した)トランザクションのクエリ部分としてこれを行う必要があります。例えばTransaction IsolationLevelを設定せずにLinq to SQLを使用するNOLOCK
:
using (var txn = new TransactionScope())
{
// query1
// query2
// query3
}
私は、クエリ1と3の変更がトランザクションになりたいが、私は他のクエリとは別のデシベルであることを起こるQUERY2にNOLOCKが必要です。私はREADUNCOMMITTEDにQUERY2のトランザクションスコープを再設定した場合、私はエラーを取得する:
The transaction specified for TransactionScope has a different IsolationLevel than the value requested for the scope. Parameter name: transactionOptions.IsolationLevel
説明が欠如していますが、これは事実上問題です。問題は、周囲トランザクションを使用しているときにIsolationLevelを変更できないことです。 RequiresNewを指定することにより、外部トランザクションに「参加」せずに、IsolationLevelを変更しようとします。代わりに、独自のIsolationLevel(ReadUncommittedの)を持つ新しいトランザクションを作成します。 – CodeNaked