Sobes.tech
Junior — Middle

Como pode configurar o nível de isolamento das transações na base de dados?

sobes.tech IA

Resposta da IA

Em C#, o nível de isolamento de transações pode ser configurado ao criar o objeto TransactionScope ou ao usar SqlTransaction.

Por exemplo, com TransactionScope, pode indicar o nível de isolamento através do parâmetro TransactionOptions:

using System.Transactions;

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

using (var scope = new TransactionScope(TransactionScopeOption.Required, options))
{
    // operações com a base de dados
    scope.Complete();
}

Ao usar SqlTransaction, o nível de isolamento é definido ao iniciar a transação:

using (var connection = new SqlConnection(connectionString))
{
    connection.Open();
    var transaction = connection.BeginTransaction(IsolationLevel.ReadCommitted);
    try
    {
        // operações com a base de dados
        transaction.Commit();
    }
    catch
    {
        transaction.Rollback();
        throw;
    }
}

Dessa forma, o nível de isolamento controla a visibilidade das alterações entre transações e influencia o comportamento dos bloqueios.