IsolationLevel Enumeração

Definição

Especifica o nível de isolamento de uma transação.

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.

ReadCommitted 2

Dados voláteis não podem ser lidos durante a transação, mas podem ser modificados.

ReadUncommitted 3

Dados voláteis podem ser lidos e modificados durante a transação.

RepeatableRead 1

Dados voláteis podem ser lidos, mas não modificados durante a transação. Novos dados podem ser adicionados durante a transação.

Serializable 0

Dados voláteis podem ser lidos, mas não modificados, e não é possível adicionar dados novos durante a transação.

Snapshot 4

Dados voláteis podem ser lidos. Antes de uma transação modificar dados, ela verifica se outra transação alterou os dados depois de ter sido lida inicialmente. Se os dados tiverem sido atualizados, um erro será gerado. Isso permite que uma transação obtenha os valores dos dados confirmados anteriormente.

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

Unspecified 6

Um nível de isolamento diferente daquele especificado está sendo usado, mas não é possível determinar o nível. Uma exceção será lançada se esse valor for definido.

Comentários

Os dados afetados por uma transação são chamados de voláteis. Quando você cria uma transação, você pode especificar o nível de isolamento que se aplica à transação. O nível de isolamento de uma transação determina qual nível de acesso outras transações têm para volátil dados antes da conclusão de uma transação.

O nível ReadUncommittedde isolamento mais baixo permite que muitas transações operem em um armazenamento de dados simultaneamente e não fornece proteção contra corrupção de dados devido a transações de interrupção. O nível Serializablede isolamento mais alto fornece um alto grau de proteção contra transações interrompetivas, mas exige que cada transação seja concluída antes que qualquer outra transação possa operar nos dados.

O nível de isolamento de uma transação é determinado quando a transação é criada. Por padrão, a System.Transactions infraestrutura cria Serializable transações. Você pode determinar o nível de isolamento de uma transação existente usando a Transaction.IsolationLevel propriedade de uma transação.

Aplica-se a