2

私のアプリケーションは、ADO.NET を使用して、SQL サーバー データベースへの SQL クエリを作成します。SQL Server のデフォルトのトランザクション レベルは、read commit に設定されています。アプリケーションは、すべてのトランザクションに対してトランザクション分離レベルの反復可能読み取りを使用しています。ただし、一部の選択では (常に同じ選択ではありません)、トランザクション分離レベルがシリアライズ可能に設定されているように見えます。これが発生する理由はありますか?また、特定の選択を特定の分離レベルで実行するよう強制する方法はありますか?

4

1 に答える 1

1

.NET の Transaction クラスのデフォルトの分離レベルはシリアライズ可能です。分離レベルは、接続が破棄された後にプールに戻ったときにリセットされない接続のプロパティの 1 つです。これが、あなたがこれを観察している理由です。

Transaction クラスを使用する .NET アプリケーションのベスト プラクティスは、分離レベルを明示的に設定することです。

于 2014-05-18T10:12:04.917 に答える