TransactionScopes で使用する IsolationLevel は次のとおりです。
- 単一のレコードを読み取ると、そのレコードを更新できます。このレコードは、データベース内の他のすべてのデータから独立しているため、その 1 つのレコードをロックするだけで済みます。
- 単一のレコードを読み取ろうとしています。レコードが存在しない場合は、そのテーブルにその値を持つレコードを作成します。これは他のすべてのテーブルから独立していますが、このテーブルをロックして、別のスレッドもレコードを見つけられないようにし、同じレコードを追加する必要があります。
2番目のケースでは、テーブルへの挿入とレコード読み取りへのアクセスを停止するためにテーブルをロックする必要があると思いますが、テーブル内の他のレコードの読み取りと他のテーブルへのアクセスは許可します。
ありがとう - デイブ