Compartir vía


IsolationLevel Enumeración

Definición

Especifica el nivel de aislamiento de una transacción.

public enum class IsolationLevel
public enum IsolationLevel
type IsolationLevel = 
Public Enum IsolationLevel
Herencia
IsolationLevel

Campos

Chaos 5

Los cambios pendientes de las transacciones más aisladas no se pueden sobrescribir.

ReadCommitted 2

Los datos variables no se pueden leer durante la transacción, pero se pueden modificar.

ReadUncommitted 3

Los datos variables se pueden leer y modificar durante la transacción.

RepeatableRead 1

Se pueden leer datos variables pero no modificarse durante la transacción. Se pueden agregar nuevos datos durante la transacción.

Serializable 0

Se pueden leer datos variables pero no modificarse y no se pueden agregar nuevos datos durante la transacción.

Snapshot 4

Se pueden leer los datos variables. Antes de que una transacción modifique los datos, comprueba si otra transacción ha cambiado los datos después de haberlos leído inicialmente. Si se han actualizado los datos, se produce un error. Esto permite a una transacción llegar al valor previamente confirmado de los datos.

Cuando se intenta promover una transacción creada con el nivel de aislamiento Snapshot, se muestra una excepción InvalidOperationException con el mensaje de error "No se pueden promover transacciones con la instantánea IsolationLevel".

Unspecified 6

Se utiliza un nivel de aislamiento distinto al especificado, pero no se puede determinar el nivel. Se produce una excepción si se establece este valor.

Comentarios

Los datos afectados por una transacción se denominan volátiles. Cuando crea una transacción, puede especificar el nivel de aislamiento que se aplica a la transacción. El nivel de aislamiento de una transacción determina qué nivel de acceso tienen otras transacciones a los datos volátiles antes de que se complete una transacción.

El nivel de aislamiento más bajo, ReadUncommitted, permite que muchas transacciones funcionen en un almacén de datos simultáneamente y no proporcionan protección contra daños en los datos debido a transacciones interruptivas. El nivel de aislamiento más alto, Serializable, proporciona un alto grado de protección frente a transacciones interruptivas, pero requiere que cada transacción se complete antes de que se permita que otras transacciones funcionen en los datos.

El nivel de aislamiento de una transacción se determina cuando se crea la transacción. De forma predeterminada, la System.Transactions infraestructura crea Serializable transacciones. Puede determinar el nivel de aislamiento de una transacción existente mediante la Transaction.IsolationLevel propiedad de una transacción.

Se aplica a