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;
}
}
Таким образом, уровень изоляции контролирует видимость изменений между транзакциями и влияет на поведение блокировок.