Sobes.tech
Junior — Middle

Cum se poate configura nivelul de izolare al tranzacțiilor în baza de date?

sobes.tech AI

Răspuns de la AI

În C#, nivelul de izolare al tranzacțiilor poate fi configurat la crearea obiectului TransactionScope sau la utilizarea SqlTransaction.

De exemplu, cu TransactionScope, puteți specifica nivelul de izolare prin parametrul TransactionOptions:

using System.Transactions;

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

using (var scope = new TransactionScope(TransactionScopeOption.Required, options))
{
    // operațiuni cu baza de date
    scope.Complete();
}

La utilizarea SqlTransaction, nivelul de izolare este stabilit la începutul tranzacției:

using (var connection = new SqlConnection(connectionString))
{
    connection.Open();
    var transaction = connection.BeginTransaction(IsolationLevel.ReadCommitted);
    try
    {
        // operațiuni cu baza de date
        transaction.Commit();
    }
    catch
    {
        transaction.Rollback();
        throw;
    }
}

Astfel, nivelul de izolare controlează vizibilitatea modificărilor între tranzacții și influențează comportamentul blocărilor.