TransactionIsolationLevel Enumerazione

Definizione

Specifica il valore di TransactionAttribute.

[System.Serializable]
public enum TransactionIsolationLevel
Ereditarietà
TransactionIsolationLevel
Attributi

Campi

Any 0

Il livello di isolamento del componente è ottenuto dal livello di isolamento del componente chiamante. Nel caso del componente di primo livello, il livello di isolamento utilizzato è Serializable.

ReadCommitted 2

Sebbene durante la lettura dei dati vengano utilizzati blocchi condivisi per impedire la lettura dei dati modificati, è possibile apportare modifiche a tali dati prima della fine della transazione. Si otterranno pertanto letture non ripetibili o dati fantasma.

ReadUncommitted 1

Sono attivati blocchi condivisi e vengono ignorati blocchi esclusivi.

RepeatableRead 3

I blocchi sono posizionati su tutti i dati utilizzati in una query, impedendo l'aggiornamento dei dati da parte di altri utenti. Impedisce le letture non ripetibili, ma è sempre possibile ottenere righe fantasma.

Serializable 4

Impedisce l'aggiornamento o l'inserimento fino a quando la transazione non è completa.

Esempio

Nell'esempio di codice seguente viene illustrato l'uso TransactionIsolationLevel del tipo.

using System;
using System.EnterpriseServices;
using System.Reflection;

// References:
// System.EnterpriseServices

// An instance of this class will inherit its caller's transaction isolation
// level if available. If not, it will use isolation level Serializable.
[Transaction(Isolation=TransactionIsolationLevel.Any)]
public class TransactionAttribute_IsolationAny : ServicedComponent
{
}

// An instance of this class will read only committed data, but non-repeatable
// reads and phantom rows are still possible.
[Transaction(Isolation=TransactionIsolationLevel.ReadCommitted)]
public class TransactionAttribute_IsolationReadCommitted : ServicedComponent
{
}

// An instance of this class will read committed and uncommitted data, so dirty
// reads, non-repeatable reads, and phantom rows are possible.
[Transaction(Isolation=TransactionIsolationLevel.ReadUncommitted)]
public class TransactionAttribute_IsolationReadUncommitted : ServicedComponent
{
}

// An instance of this class will read only committed data and place shared
// locks on the data, preventing other users from modifying it, but other users
// can still insert rows into the data set, so phantom rows are still possible.
[Transaction(Isolation=TransactionIsolationLevel.RepeatableRead)]
public class TransactionAttribute_IsolationRepeatableRead : ServicedComponent
{
}

// An instance of this class will read only committed data and place a range
// lock on the data set, preventing other users from updating or inserting rows
// into the data set until its transaction is complete.
[Transaction(Isolation=TransactionIsolationLevel.Serializable)]
public class TransactionAttribute_IsolationSerializable : ServicedComponent
{
}

Si applica a

Prodotto Versioni
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1