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.