Sobes.tech
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.