IsolationLevel Перечисление
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Указывает уровень изоляции транзакции.
public enum class IsolationLevel
public enum IsolationLevel
type IsolationLevel =
Public Enum IsolationLevel
- Наследование
Поля
Chaos | 5 | Ожидающие изменения более изолированных транзакций не могут быть перезаписаны. |
ReadCommitted | 2 | Во время обработки транзакции переменные данные не могут считываться, но могут изменяться. |
ReadUncommitted | 3 | Во время обработки транзакции переменные данные могут считываться и изменяться. |
RepeatableRead | 1 | Во время обработки транзакции переменные данные могут считываться, но не могут изменяться. В ходе транзакции возможно добавление новых данных. |
Serializable | 0 | Во время обработки транзакции переменные данные могут считываться, но не могут изменяться. Добавление новых данных невозможно. |
Snapshot | 4 | Переменные данные могут считываться. Перед тем, как транзакция изменяет данные, она проверяет, не изменены ли данные другой транзакцией после их первоначального считывания. Если данные обновлены, возникает ошибка. Это позволяет транзакции получить значение данных, зафиксированное ранее. При попытке повысить уровень транзакции, созданной с помощью уровня изоляции |
Unspecified | 6 | Используется уровень изоляции, отличный от указанного, однако этот уровень не может быть определен. При задании этого значения вызывается исключение. |
Комментарии
Данные, затронутые транзакцией, называются переменными. При создании транзакции можно указать уровень изоляции, применяемый к этой транзакции. Уровень изоляции транзакции определяет уровень доступа других транзакций к изменчивым данным до завершения транзакции.
Самый низкий уровень ReadUncommitted
изоляции, , позволяет нескольким транзакциям работать с хранилищем данных одновременно и не обеспечивает защиту от повреждения данных из-за прерываний транзакций. Самый высокий уровень изоляции , Serializable
обеспечивает высокую степень защиты от прерываний транзакций, но требует завершения каждой транзакции, прежде чем другим транзакциям будет разрешено работать с данными.
Уровень изоляции транзакции определяется при ее создании. По умолчанию System.Transactions инфраструктура создает Serializable
транзакции. Уровень изоляции существующей транзакции можно определить с помощью Transaction.IsolationLevel свойства транзакции.