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