Junior — Middle
Hogyan lehet beállítani az adatbázis tranzakciók izolációs szintjét?
sobes.tech MI
Válasz az MI-től
C#-ban a tranzakciók izolációs szintje beállítható a TransactionScope objektum létrehozásakor vagy a SqlTransaction használatakor.
Például a TransactionScope esetén az izolációs szintet a TransactionOptions paraméterrel lehet megadni:
using System.Transactions;
var options = new TransactionOptions
{
IsolationLevel = IsolationLevel.Serializable,
Timeout = TransactionManager.DefaultTimeout
};
using (var scope = new TransactionScope(TransactionScopeOption.Required, options))
{
// adatbázis műveletek
scope.Complete();
}
A SqlTransaction használatakor az izolációs szint a tranzakció kezdetén van beállítva:
using (var connection = new SqlConnection(connectionString))
{
connection.Open();
var transaction = connection.BeginTransaction(IsolationLevel.ReadCommitted);
try
{
// adatbázis műveletek
transaction.Commit();
}
catch
{
transaction.Rollback();
throw;
}
}
Így az izolációs szint szabályozza a változások láthatóságát a tranzakciók között, és befolyásolja a zárolások viselkedését.