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.