Sobes.tech
Back to questions
Junior — Middle
67

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

Companies where asked
Элисофт

Answer from AI

sobes.tech 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;
    }
}

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