Sobes.tech
Junior — Middle

Как можете да настроите нивото на изолация на транзакциите в базата данни?

sobes.tech AI

Отговор от AI

В C# нивото на изолация на транзакциите може да бъде настроено при създаването на обекта TransactionScope или при използване на SqlTransaction.

Например, с TransactionScope можете да посочите нивото на изолация чрез параметъра TransactionOptions:

using System.Transactions;

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

using (var scope = new TransactionScope(TransactionScopeOption.Required, options))
{
    // операции с базата данни
    scope.Complete();
}

При използване на SqlTransaction, нивото на изолация се задава при началото на транзакцията:

using (var connection = new SqlConnection(connectionString))
{
    connection.Open();
    var transaction = connection.BeginTransaction(IsolationLevel.ReadCommitted);
    try
    {
        // операции с базата данни
        transaction.Commit();
    }
    catch
    {
        transaction.Rollback();
        throw;
    }
}

По този начин, нивото на изолация контролира видимостта на промените между транзакциите и влияе на поведението на блокировките.