IsolationLevel IsolationLevel IsolationLevel IsolationLevel Enum

Definición

Especifica el nivel de aislamiento de una transacción.Specifies the isolation level of a transaction.

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

Campos

Chaos Chaos Chaos Chaos 5

Los cambios pendientes de las transacciones más aisladas no se pueden sobrescribir.The pending changes from more highly isolated transactions cannot be overwritten.

ReadCommitted ReadCommitted ReadCommitted ReadCommitted 2

Los datos variables no se pueden leer durante la transacción, pero se pueden modificar.Volatile data cannot be read during the transaction, but can be modified.

ReadUncommitted ReadUncommitted ReadUncommitted ReadUncommitted 3

Los datos variables se pueden leer y modificar durante la transacción.Volatile data can be read and modified during the transaction.

RepeatableRead RepeatableRead RepeatableRead RepeatableRead 1

Se pueden leer datos variables pero no modificarse durante la transacción.Volatile data can be read but not modified during the transaction. Se pueden agregar nuevos datos durante la transacción.New data can be added during the transaction.

Serializable Serializable Serializable Serializable 0

Se pueden leer datos variables pero no modificarse y no se pueden agregar nuevos datos durante la transacción.Volatile data can be read but not modified, and no new data can be added during the transaction.

Snapshot Snapshot Snapshot Snapshot 4

Se pueden leer los datos variables.Volatile data can be read. 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.Before a transaction modifies data, it verifies if another transaction has changed the data after it was initially read. Si se han actualizado los datos, se produce un error.If the data has been updated, an error is raised. Esto permite a una transacción llegar al valor previamente confirmado de los datos.This allows a transaction to get to the previously committed value of the data.

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".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

Se utiliza un nivel de aislamiento distinto al especificado, pero no se puede determinar el nivel.A different isolation level than the one specified is being used, but the level cannot be determined. Se produce una excepción si se establece este valor.An exception is thrown if this value is set.

Comentarios

Los datos afectados por una transacción se denominan volatile.The data affected by a transaction is called volatile. Cuando crea una transacción, puede especificar el nivel de aislamiento que se aplica a la transacción.When you create a transaction, you can specify the isolation level that applies to the transaction. El nivel de aislamiento de una transacción determina el nivel de acceso que otras transacciones tienen a los datos volátiles antes de que se complete una transacción.The isolation level of a transaction determines what level of access other transactions have to volatile data before a transaction completes.

El nivel de aislamiento más ReadUncommittedbajo,, permite que muchas transacciones operen en un almacén de datos simultáneamente y no proporciona protección contra daños en los datos debido a las transacciones interrumpidas.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. El nivel de aislamiento más Serializablealto,, proporciona un alto grado de protección frente a las transacciones interrumpidas, pero requiere que cada transacción se complete antes de que cualquier otra transacción pueda operar en los datos.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.

El nivel de aislamiento de una transacción se determina cuando se crea la transacción.The isolation level of a transaction is determined when the transaction is created. De forma predeterminada, System.Transactions la infraestructura Serializable crea transacciones.By default, the System.Transactions infrastructure creates Serializable transactions. Puede determinar el nivel de aislamiento de una transacción existente utilizando la Transaction.IsolationLevel propiedad de una transacción.You can determine the isolation level of an existing transaction by using the Transaction.IsolationLevel property of a transaction.

Se aplica a