IsolationLevel IsolationLevel IsolationLevel IsolationLevel Enum

Definizione

Specifica il livello di isolamento di una transazione.Specifies the isolation level of a transaction.

public enum class IsolationLevel
public enum IsolationLevel
type IsolationLevel = 
Public Enum IsolationLevel
Ereditarietà
IsolationLevelIsolationLevelIsolationLevelIsolationLevel

Campi

Chaos Chaos Chaos Chaos 5

Le modifiche in sospeso dalle transazioni più isolate non possono essere sovrascritte.The pending changes from more highly isolated transactions cannot be overwritten.

ReadCommitted ReadCommitted ReadCommitted ReadCommitted 2

Durante la transazione non è possibile leggere i dati volatili, ma è possibile modificarli.Volatile data cannot be read during the transaction, but can be modified.

ReadUncommitted ReadUncommitted ReadUncommitted ReadUncommitted 3

Durante la transazione è possibile leggere e modificare i dati volatili.Volatile data can be read and modified during the transaction.

RepeatableRead RepeatableRead RepeatableRead RepeatableRead 1

Durante la transazione, è possibile leggere i dati volatili ma non modificarli.Volatile data can be read but not modified during the transaction. Durante la transazione, è possibile aggiungere nuovi dati.New data can be added during the transaction.

Serializable Serializable Serializable Serializable 0

Durante la transazione è possibile leggere ma non modificare i dati volatili e non è possibile aggiungere nuovi dati.Volatile data can be read but not modified, and no new data can be added during the transaction.

Snapshot Snapshot Snapshot Snapshot 4

È possibile leggere i dati volatili.Volatile data can be read. Prima che una transazione modifichi i dati, viene verificato se un'altra transazione ha modificato i dati dopo essere stati letti.Before a transaction modifies data, it verifies if another transaction has changed the data after it was initially read. Se i dati sono stati aggiornati, viene generato un errore.If the data has been updated, an error is raised. In questo modo, una transazione può ottenere il valore dei dati di cui è stato precedentemente eseguito il commit.This allows a transaction to get to the previously committed value of the data.

Quando si tenta di alzare il livello di una transazione creata con il livello di isolamento Snapshot, viene generata un'eccezione InvalidOperationException con il messaggio di errore "Impossibile promuovere le transazioni con IsolationLevel Snapshot".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

Verrà utilizzato un livello di isolamento diverso da quello specificato, ma il livello non potrà essere determinato.A different isolation level than the one specified is being used, but the level cannot be determined. Se viene impostato questo valore, verrà generata un'eccezione.An exception is thrown if this value is set.

Commenti

I dati interessati da una transazione sono detti volatili.The data affected by a transaction is called volatile. Quando si crea una transazione è possibile specificarne il livello di isolamento.When you create a transaction, you can specify the isolation level that applies to the transaction. Il livello di isolamento di una transazione determina il livello di accesso delle altre transazioni ai dati volatili prima che una transazione venga completata.The isolation level of a transaction determines what level of access other transactions have to volatile data before a transaction completes.

Il livello di isolamento più ReadUncommittedbasso,, consente a molte transazioni di operare contemporaneamente su un archivio dati e non offre alcuna protezione contro il danneggiamento dei dati causato da transazioni interrotte.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. Il livello di isolamento massimo Serializable,, offre un elevato livello di protezione contro le transazioni interrotte, ma richiede che ogni transazione venga completata prima che qualsiasi altra transazione possa operare sui dati.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.

Il livello di isolamento di una transazione viene determinato al momento della creazione della transazione.The isolation level of a transaction is determined when the transaction is created. Per impostazione predefinita, System.Transactions l'infrastruttura Serializable crea le transazioni.By default, the System.Transactions infrastructure creates Serializable transactions. È possibile determinare il livello di isolamento di una transazione esistente utilizzando la Transaction.IsolationLevel proprietà di una transazione.You can determine the isolation level of an existing transaction by using the Transaction.IsolationLevel property of a transaction.

Si applica a