Sobes.tech
Junior — Middle

Hoe kan het isolatieniveau van transacties in de database worden ingesteld?

sobes.tech AI

Antwoord van AI

In C# kan het isolatieniveau van transacties worden ingesteld bij het maken van het TransactionScope-object of bij het gebruik van SqlTransaction.

Bijvoorbeeld, met TransactionScope kan het isolatieniveau worden gespecificeerd via de parameter TransactionOptions:

using System.Transactions;

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

using (var scope = new TransactionScope(TransactionScopeOption.Required, options))
{
    // databasebewerkingen
    scope.Complete();
}

Bij gebruik van SqlTransaction wordt het isolatieniveau ingesteld bij het begin van de transactie:

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

Op deze manier controleert het isolatieniveau de zichtbaarheid van wijzigingen tussen transacties en beïnvloedt het het gedrag van vergrendelingen.