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.