IsolationLevel IsolationLevel IsolationLevel IsolationLevel Enum

Определение

Указывает уровень изоляции транзакции.Specifies the isolation level of a transaction.

public enum class IsolationLevel
public enum IsolationLevel
type IsolationLevel = 
Public Enum IsolationLevel
Наследование
IsolationLevelIsolationLevelIsolationLevelIsolationLevel

Поля

Chaos Chaos Chaos Chaos 5

Ожидающие изменения более изолированных транзакций не могут быть перезаписаны.The pending changes from more highly isolated transactions cannot be overwritten.

ReadCommitted ReadCommitted ReadCommitted ReadCommitted 2

Во время обработки транзакции переменные данные не могут считываться, но могут изменяться.Volatile data cannot be read during the transaction, but can be modified.

ReadUncommitted ReadUncommitted ReadUncommitted ReadUncommitted 3

Во время обработки транзакции переменные данные могут считываться и изменяться.Volatile data can be read and modified during the transaction.

RepeatableRead RepeatableRead RepeatableRead RepeatableRead 1

Во время обработки транзакции переменные данные могут считываться, но не могут изменяться.Volatile data can be read but not modified during the transaction. В ходе транзакции возможно добавление новых данных.New data can be added during the transaction.

Serializable Serializable Serializable Serializable 0

Во время обработки транзакции переменные данные могут считываться, но не могут изменяться. Добавление новых данных невозможно.Volatile data can be read but not modified, and no new data can be added during the transaction.

Snapshot Snapshot Snapshot Snapshot 4

Переменные данные могут считываться.Volatile data can be read. Перед тем, как транзакция изменяет данные, она проверяет, не изменены ли данные другой транзакцией после их первоначального считывания.Before a transaction modifies data, it verifies if another transaction has changed the data after it was initially read. Если данные обновлены, возникает ошибка.If the data has been updated, an error is raised. Это позволяет транзакции получить значение данных, зафиксированное ранее.This allows a transaction to get to the previously committed value of the data.

При попытке повысить уровень транзакции, созданной с помощью уровня изоляции Snapshot, возникает исключение InvalidOperationException с сообщением об ошибке: "Для транзакций с моментальным снимком IsolationLevel нельзя повысить уровень".When you try to promote a transaction that was created with the Snapshot isolation level, an InvalidOperationException is thrown with the error message "Transactions with IsolationLevel Snapshot cannot be promoted".

Unspecified Unspecified Unspecified Unspecified 6

Используется уровень изоляции, отличный от указанного, однако этот уровень не может быть определен.A different isolation level than the one specified is being used, but the level cannot be determined. При задании этого значения вызывается исключение.An exception is thrown if this value is set.

Комментарии

Данные, которые затрагиваются транзакцией, называются переменными.The data affected by a transaction is called volatile. При создании транзакции можно указать уровень изоляции, применяемый к этой транзакции.When you create a transaction, you can specify the isolation level that applies to the transaction. Уровень изоляции транзакции определяет, какой уровень доступа других транзакций к volatile раньше, чем транзакция завершается.The isolation level of a transaction determines what level of access other transactions have to volatile data before a transaction completes.

Самый низкий уровень изоляции, ReadUncommitted, позволяет много транзакций, для работы с хранилищем данных одновременно и не обеспечивает защиты от повреждения данных из-за прерывающихся транзакций.The lowest isolation level, ReadUncommitted, allows many transactions to operate on a data store simultaneously and provides no protection against data corruption due to interruptive transactions. Высокий уровень изоляции, Serializable, обеспечивает высокую степень защиты от прерывающихся транзакций, но требует, чтобы каждая транзакция выполнить перед любым другим транзакциям разрешено работать с данными.The highest isolation level, Serializable, provides a high degree of protection against interruptive transactions, but requires that each transaction complete before any other transactions are allowed to operate on the data.

Уровень изоляции транзакции определяется при создании транзакции.The isolation level of a transaction is determined when the transaction is created. По умолчанию System.Transactions инфраструктура создает Serializable транзакции.By default, the System.Transactions infrastructure creates Serializable transactions. Уровень изоляции для существующей транзакции можно определить с помощью Transaction.IsolationLevel свойство транзакции.You can determine the isolation level of an existing transaction by using the Transaction.IsolationLevel property of a transaction.

Применяется к