IsolationLevel Enumeração

Definição

Especifica o nível de isolamento de uma transação.Specifies the isolation level of a transaction.

public enum class IsolationLevel
public enum IsolationLevel
type IsolationLevel = 
Public Enum IsolationLevel
Herança
IsolationLevel

Campos

Chaos 5

As alterações pendentes de transações com maior isolamento não podem ser substituídas.The pending changes from more highly isolated transactions cannot be overwritten.

ReadCommitted 2

Dados voláteis não podem ser lidos durante a transação, mas podem ser modificados.Volatile data cannot be read during the transaction, but can be modified.

ReadUncommitted 3

Dados voláteis podem ser lidos e modificados durante a transação.Volatile data can be read and modified during the transaction.

RepeatableRead 1

Dados voláteis podem ser lidos, mas não modificados durante a transação.Volatile data can be read but not modified during the transaction. Novos dados podem ser adicionados durante a transação.New data can be added during the transaction.

Serializable 0

Dados voláteis podem ser lidos, mas não modificados, e não é possível adicionar dados novos durante a transação.Volatile data can be read but not modified, and no new data can be added during the transaction.

Snapshot 4

Dados voláteis podem ser lidos.Volatile data can be read. Antes de uma transação modificar dados, ela verifica se outra transação alterou os dados depois de ter sido lida inicialmente.Before a transaction modifies data, it verifies if another transaction has changed the data after it was initially read. Se os dados tiverem sido atualizados, um erro será gerado.If the data has been updated, an error is raised. Isso permite que uma transação obtenha os valores dos dados confirmados anteriormente.This allows a transaction to get to the previously committed value of the data.

Quando você tentar promover uma transação que foi criada com o nível de isolamento Snapshot, um InvalidOperationException será lançado com a mensagem de erro "Transações com instantâneo de nível de isolamento não podem ser promovidas".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 6

Um nível de isolamento diferente daquele especificado está sendo usado, mas não é possível determinar o nível.A different isolation level than the one specified is being used, but the level cannot be determined. Uma exceção será lançada se esse valor for definido.An exception is thrown if this value is set.

Comentários

Os dados afetados por uma transação são chamados de voláteis.The data affected by a transaction is called volatile. Quando você cria uma transação, você pode especificar o nível de isolamento que se aplica à transação.When you create a transaction, you can specify the isolation level that applies to the transaction. O nível de isolamento de uma transação determina o nível de acesso que outras transações têm a dados voláteis antes de uma transação ser concluída.The isolation level of a transaction determines what level of access other transactions have to volatile data before a transaction completes.

O nível de isolamento mais ReadUncommittedbaixo,, permite que muitas transações operem em um armazenamento de dados simultaneamente e não forneça proteção contra corrupção de dados devido a transações de interrupção.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. O nível de isolamento mais Serializablealto,, fornece um alto grau de proteção contra transações de interrupção, mas requer que cada transação seja concluída antes que outras transações tenham permissão para operar nos dados.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.

O nível de isolamento de uma transação é determinado quando a transação é criada.The isolation level of a transaction is determined when the transaction is created. Por padrão, a System.Transactions infraestrutura cria Serializable transações.By default, the System.Transactions infrastructure creates Serializable transactions. Você pode determinar o nível de isolamento de uma transação existente usando a Transaction.IsolationLevel propriedade de uma transação.You can determine the isolation level of an existing transaction by using the Transaction.IsolationLevel property of a transaction.

Aplica-se a