Sobes.tech
Junior — Middle

Kako se može podesiti nivo izolacije transakcija u bazi podataka?

sobes.tech АИ

Одговор од АИ

U C#-u, nivo izolacije transakcija može se podesiti prilikom kreiranja objekta TransactionScope ili prilikom korišćenja SqlTransaction.

Na primer, sa TransactionScope, nivo izolacije može se specificirati putem parametra TransactionOptions:

using System.Transactions;

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

using (var scope = new TransactionScope(TransactionScopeOption.Required, options))
{
    // operacije sa bazom podataka
    scope.Complete();
}

Prilikom korišćenja SqlTransaction, nivo izolacije se postavlja na početku transakcije:

using (var connection = new SqlConnection(connectionString))
{
    connection.Open();
    var transaction = connection.BeginTransaction(IsolationLevel.ReadCommitted);
    try
    {
        // operacije sa bazom podataka
        transaction.Commit();
    }
    catch
    {
        transaction.Rollback();
        throw;
    }
}

Na ovaj način, nivo izolacije kontroliše vidljivost promena između transakcija i utiče na ponašanje zaključavanja.