英語で読む

次の方法で共有


IsolationLevel 列挙型

定義

トランザクションの分離レベルを指定します。

C#
public enum IsolationLevel
継承
IsolationLevel

フィールド

名前 説明
Chaos 5

これより分離性の高いトランザクションからの保留中の変更に対しては上書きできません。

ReadCommitted 2

揮発性データをトランザクション中に読み取ることはできませんが、変更することはできます。

ReadUncommitted 3

揮発性データをトランザクション中に読み取ったり、変更したりできます。

RepeatableRead 1

揮発性データをトランザクション中に読み取ることはできますが、変更することはできません。 トランザクション中に新しいデータを追加できます。

Serializable 0

揮発性データを読み取ることはできますが、変更することはできません。また、トランザクション中に新しいデータを追加することはできません。

Snapshot 4

揮発性データを読み取ることができます。 トランザクションがデータを変更する前に、データを最初に読み取った後に別のトランザクションがそれを変更していないかどうかを検査します。 データが更新されている場合は、エラーが発生します。 これにより、トランザクションは、データの前回コミットされた値に到達できます。

Snapshot 分離レベルを使用して作成したトランザクションを昇格させようとすると、エラー メッセージ「IsolationLevel スナップショットのあるトランザクションは上位変換できません」と共に InvalidOperationException がスローされます。

Unspecified 6

指定した分離レベルとは異なる分離レベルが使用されていますが、レベルを確認できません。 この値が設定されている場合は、例外がスローされます。

注釈

トランザクションの影響を受けるデータは volatile と呼ばれます。 トランザクションの作成時に、トランザクションに適用する分離レベルを指定できます。 トランザクションの分離レベルによって、トランザクションが完了する前に他のトランザクションがデータを揮発性にする必要があるアクセス レベルが決まります。

最も低い分離レベルである は、 ReadUncommitted多くのトランザクションがデータ ストアで同時に動作することを可能にし、中断トランザクションによるデータ破損に対する保護を提供しません。 最も高い分離レベルである は、 Serializable中断トランザクションに対する高度な保護を提供しますが、他のトランザクションがデータに対する操作を許可される前に各トランザクションを完了する必要があります。

トランザクションの分離レベルは、トランザクションの作成時に決定されます。 既定では、インフラストラクチャによってトランザクションが System.Transactions 作成 Serializable されます。 トランザクションの プロパティを使用 Transaction.IsolationLevel して、既存のトランザクションの分離レベルを決定できます。

適用対象

製品 バージョン
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1