Sobes.tech
Junior — Middle

Come si può configurare il livello di isolamento delle transazioni nel database?

sobes.tech AI

Risposta dell'AI

In C# il livello di isolamento delle transazioni può essere configurato durante la creazione dell'oggetto TransactionScope o durante l'uso di SqlTransaction.

Ad esempio, con TransactionScope, è possibile specificare il livello di isolamento tramite il parametro TransactionOptions:

using System.Transactions;

var options = new TransactionOptions
{
    IsolationLevel = IsolationLevel.Serializable,
    Timeout = TransactionManager.DefaultTimeout
};

using (var scope = new TransactionScope(TransactionScopeOption.Required, options))
{
    // operazioni sul database
    scope.Complete();
}

Quando si utilizza SqlTransaction, il livello di isolamento viene impostato all'inizio della transazione:

using (var connection = new SqlConnection(connectionString))
{
    connection.Open();
    var transaction = connection.BeginTransaction(IsolationLevel.ReadCommitted);
    try
    {
        // operazioni sul database
        transaction.Commit();
    }
    catch
    {
        transaction.Rollback();
        throw;
    }
}

In questo modo, il livello di isolamento controlla la visibilità delle modifiche tra le transazioni e influisce sul comportamento dei blocchi.