Sobes.tech
Junior — Middle

Ma'lumotlar bazasida tranzaktsiyalarni izolyatsiya darajasini qanday sozlash mumkin?

sobes.tech AI

AIdan javob

C# tilida tranzaktsiyalar darajasini TransactionScope ob'ekti yaratilganda yoki SqlTransaction ishlatilganda sozlash mumkin.

Masalan, TransactionScope bilan izolatsiya darajasini TransactionOptions parametri orqali belgilash mumkin:

using System.Transactions;

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

using (var scope = new TransactionScope(TransactionScopeOption.Required, options))
{
    // ma'lumotlar bazasi operatsiyalari
    scope.Complete();
}

SqlTransaction ishlatilganda, izolatsiya darajasi tranzaksiya boshlanishida belgilangan:

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

Shu tarzda, izolatsiya darajasi tranzaktsiyalar o'rtasidagi o'zgarishlarning ko'rinishini nazorat qiladi va blokirovka xulq-atvoriga ta'sir qiladi.