0

TransactionScopes で使用する IsolationLevel は次のとおりです。

  1. 単一のレコードを読み取ると、そのレコードを更新できます。このレコードは、データベース内の他のすべてのデータから独立しているため、その 1 つのレコードをロックするだけで済みます。
  2. 単一のレコードを読み取ろうとしています。レコードが存在しない場合は、そのテーブルにその値を持つレコードを作成します。これは他のすべてのテーブルから独立していますが、このテーブルをロックして、別のスレッドもレコードを見つけられないようにし、同じレコードを追加する必要があります。

2番目のケースでは、テーブルへの挿入とレコード読み取りへのアクセスを停止するためにテーブルをロックする必要があると思いますが、テーブル内の他のレコードの読み取りと他のテーブルへのアクセスは許可します。

ありがとう - デイブ

4

1 に答える 1

0

私はそれを扱っていないので、EFについてはわかりませんが、私の答えは次のとおりです。

  1. 'REPEATABLE READ' を使用するだけで十分です."

  2. 「現在のトランザクションが完了するまで、他のトランザクションは現在のトランザクションによって読み取られたデータを変更できない」ため、「SERIALIZABLE」を使用します。

分離レベルの詳細については、こちらを参照してください。

于 2013-10-23T23:24:15.033 に答える