IsolationLevel 列舉
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
指定交易的隔離等級 (Isolation Level)。
public enum class IsolationLevel
public enum IsolationLevel
type IsolationLevel =
Public Enum IsolationLevel
- 繼承
欄位
Chaos | 5 | 無法覆寫來自隔離程度更深之交易的暫止變更。 |
ReadCommitted | 2 | 在交易期間無法讀取 Volatile 資料,但可以修改該資料。 |
ReadUncommitted | 3 | 在交易期間可以讀取和修改 Volatile 資料。 |
RepeatableRead | 1 | 在交易期間可以讀取 Volatile 資料,但無法修改該資料。 在交易期間可以加入新資料。 |
Serializable | 0 | 在交易期間可以讀取 Volatile 資料,但無法修改該資料,且不能加入新資料。 |
Snapshot | 4 | 可以讀取 Volatile 資料。 交易會在修改資料之前,先驗證在最初讀取資料後是否有另一個交易已變更該資料。 如果資料已更新,則會引發錯誤, 如此可允許交易回到先前所認可的資料值。 當您升級使用 |
Unspecified | 6 | 使用與指定不同的隔離等級,但無法判斷該等級。 如果設定這個值,會擲回例外狀況。 |
備註
受交易影響的資料稱為 volatile。 當您建立交易時,可以指定套用至交易的隔離等級。 交易的隔離等級會決定其他交易在交易完成之前,哪些存取權層級必須具有變動性資料。
最低隔離等級 ReadUncommitted
可讓許多交易同時在資料存放區上運作,而且不會因為中斷的交易而防止資料損毀。 最高隔離等級提供對中斷交易的高等級 Serializable
保護,但要求每個交易在允許對資料操作之前完成每個交易。
交易的隔離等級會在建立交易時決定。 根據預設, System.Transactions 基礎結構會 Serializable
建立交易。 您可以使用交易的 屬性來判斷現有交易 Transaction.IsolationLevel 的隔離等級。