Sobes.tech
Junior — Middle

როგორ შეიძლება კონფიგურაცია Transaction-ის იზოლაციის დონე მონაცემთა ბაზაში?

sobes.tech AI

პასუხი AI-სგან

C# ენაში, ტრანზაქციების იზოლაციის დონე შეიძლება იყოს კონფიგურირებული TransactionScope ობიექტის შექმნის დროს ან SqlTransaction გამოყენებისას.

მაგალითად, TransactionScope-თან, იზოლაციის დონე შეიძლება მითითდეს TransactionOptions პარამეტრის მეშვეობით:

using System.Transactions;

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

using (var scope = new TransactionScope(TransactionScopeOption.Required, options))
{
    // მონაცემთა ბაზის ოპერაციები
    scope.Complete();
}

SqlTransaction-ის გამოყენებისას, იზოლაციის დონე განსაზღვრულია ტრანზაქციის დასაწყისში:

using (var connection = new SqlConnection(connectionString))
{
    connection.Open();
    var transaction = connection.BeginTransaction(IsolationLevel.ReadCommitted);
    try
    {
        // მონაცემთა ბაზის ოპერაციები
        transaction.Commit();
    }
    catch
    {
        transaction.Rollback();
        throw;
    }
}

ამ გზით, იზოლაციის დონე აკონტროლებს ცვლილებების ხილვადობას ტრანზაქციებს შორის და გავლენას ახდენს ბლოკირების ქცევაზე.