Sobes.tech
Junior — Middle

Jak można ustawić poziom izolacji transakcji w bazie danych?

sobes.tech AI

Odpowiedź od AI

W C# poziom izolacji transakcji można ustawić podczas tworzenia obiektu TransactionScope lub podczas korzystania z SqlTransaction.

Na przykład, z TransactionScope można określić poziom izolacji za pomocą parametru TransactionOptions:

using System.Transactions;

var options = new TransactionOptions
{
    IsolationLevel = IsolationLevel.Serializable,
    Timeout = TransactionManager.DefaultTimeout
};

using (var scope = new TransactionScope(TransactionScopeOption.Required, options))
{
    // operacje na bazie danych
    scope.Complete();
}

Podczas korzystania z SqlTransaction, poziom izolacji jest ustawiany na początku transakcji:

using (var connection = new SqlConnection(connectionString))
{
    connection.Open();
    var transaction = connection.BeginTransaction(IsolationLevel.ReadCommitted);
    try
    {
        // operacje na bazie danych
        transaction.Commit();
    }
    catch
    {
        transaction.Rollback();
        throw;
    }
}

W ten sposób poziom izolacji kontroluje widoczność zmian między transakcjami i wpływa na zachowanie blokad.