Bu makale, makine tarafından çevrilmiştir. Makaleyi İngilizce dilinde görüntülemek için İngilizce onay kutusunu işaretleyin. Ayrıca, fare işaretçisiyle İngilizce metnin üzerine gelerek metni açılır pencerede de görüntüleyebilirsiniz.
Çeviri
İngilizce

TransactionScope Sınıfı

 

Yayımlanan: Temmuz 2016

Kod bloğu işlem yapar. Bu sınıf devralınamaz.

Ad alanı:   System.Transactions
Derleme:  System.Transactions (System.Transactions.dll içinde)

System.Object
  System.Transactions.TransactionScope

public sealed class TransactionScope : IDisposable

AdıAçıklama
System_CAPS_pubmethodTransactionScope()

Yeni bir örneğini başlatır TransactionScope sınıfı.

System_CAPS_pubmethodTransactionScope(Transaction)

Yeni bir örneğini başlatır TransactionScope sınıfının ve belirtilen işlem bir ortam işlem ayarlar, böylece bu işlem kapsam içinde işlem çalışmanın kullanır.

System_CAPS_pubmethodTransactionScope(Transaction, TimeSpan)

Yeni bir örneğini başlatır TransactionScope sınıfı, belirtilen zaman aşımı değerine sahip ve belirtilen işlem bir ortam işlem ayarlar, böylece bu işlem kapsam içinde işlem çalışmanın kullanır.

System_CAPS_pubmethodTransactionScope(Transaction, TimeSpan, EnterpriseServicesInteropOption)

Yeni bir örneğini başlatır TransactionScope belirtilen zaman aşımı değeri ve COM + birlikte çalışabilirlik gereksinimleri, sınıf ve belirtilen işlem bir ortam işlem ayarlar, böylece bu işlem kapsam içinde işlem çalışmanın kullanır.

System_CAPS_pubmethodTransactionScope(Transaction, TimeSpan, TransactionScopeAsyncFlowOption)

[.NET Framework 4.5.1 ve sonraki sürümlerinde desteklenen]

Yeni bir örneğini başlatır TransactionScope sınıfı, belirtilen zaman aşımı değerine sahip ve belirtilen işlem bir ortam işlem ayarlar, böylece bu işlem kapsam içinde işlem çalışmanın kullanır.

System_CAPS_pubmethodTransactionScope(Transaction, TransactionScopeAsyncFlowOption)

[.NET Framework 4.5.1 ve sonraki sürümlerinde desteklenen]

Yeni bir örneğini başlatır TransactionScope sınıfının ve belirtilen işlem bir ortam işlem ayarlar, böylece bu işlem kapsam içinde işlem çalışmanın kullanır.

System_CAPS_pubmethodTransactionScope(TransactionScopeAsyncFlowOption)

[.NET Framework 4.5.1 ve sonraki sürümlerinde desteklenen]

Yeni bir örneğini başlatır TransactionScope belirtilen zaman uyumsuz akış seçeneği ile sınıfı.

System_CAPS_pubmethodTransactionScope(TransactionScopeOption)

Yeni bir örneğini başlatır TransactionScope belirtilen gereksinimlere sahip sınıf.

System_CAPS_pubmethodTransactionScope(TransactionScopeOption, TimeSpan)

Yeni bir örneğini başlatır TransactionScope sınıfı belirtilen zaman aşımı değeri ve gereksinimleri ile.

System_CAPS_pubmethodTransactionScope(TransactionScopeOption, TimeSpan, TransactionScopeAsyncFlowOption)

[.NET Framework 4.5.1 ve sonraki sürümlerinde desteklenen]

Yeni bir örneğini başlatır TransactionScope belirtilen zaman aşımı değeri, gereksinimleri ve zaman uyumsuz akış seçeneği ile sınıfı.

System_CAPS_pubmethodTransactionScope(TransactionScopeOption, TransactionOptions)

Yeni bir örneğini başlatır TransactionScope belirtilen gereksinimlere sahip sınıf.

System_CAPS_pubmethodTransactionScope(TransactionScopeOption, TransactionOptions, EnterpriseServicesInteropOption)

Yeni bir örneğini başlatır TransactionScope sınıfı ile belirtilen kapsam ve COM + birlikte çalışabilirlik gereksinimleri ve işlem seçenekleri.

System_CAPS_pubmethodTransactionScope(TransactionScopeOption, TransactionOptions, TransactionScopeAsyncFlowOption)

[.NET Framework 4.5.1 ve sonraki sürümlerinde desteklenen]

Yeni bir örneğini başlatır TransactionScope belirtilen gereksinimleri ve zaman uyumsuz akış seçeneği sınıfı.

System_CAPS_pubmethodTransactionScope(TransactionScopeOption, TransactionScopeAsyncFlowOption)

[.NET Framework 4.5.1 ve sonraki sürümlerinde desteklenen]

Yeni bir örneğini başlatır TransactionScope belirtilen gereksinimleri ve zaman uyumsuz akış seçeneği sınıfı.

AdıAçıklama
System_CAPS_pubmethodComplete()

Kapsamdaki tüm işlemleri başarıyla tamamlandı gösterir.

System_CAPS_pubmethodDispose()

İşlem kapsamı sona erer.

System_CAPS_pubmethodEquals(Object)

Belirtilen nesnenin geçerli nesneyle eşit olup olmadığını belirler.(Object kaynağından devralındı.)

System_CAPS_pubmethodGetHashCode()

Varsayılan karma işlevi olarak görev yapar.(Object kaynağından devralındı.)

System_CAPS_pubmethodGetType()

Alır Type geçerli örneği.(Object kaynağından devralındı.)

System_CAPS_pubmethodToString()

Geçerli nesneyi temsil eden bir dize döndürür.(Object kaynağından devralındı.)

System.Transactions Altyapı temel hem bir açık bir programlama modeli sağlar Transaction sınıfı, aynı zamanda örtük bir programlama modeli kullanarak TransactionScope içinde işlemleri otomatik olarak yönetilir altyapısı tarafından sınıfı.

System_CAPS_importantÖnemli

Önerilen kullanarak örtük işlemleri oluşturma TransactionScope sınıfının böylece ortam işlem bağlamı sizin için otomatik olarak yönetilir. Ayrıca kullanmanız gereken TransactionScope ve DependentTransaction sınıfı birden fazla işlev çağrıları veya birden çok iş parçacığı çağrı boyunca aynı işlem kullanımını gerektiren uygulamalar için. Bu model hakkında daha fazla bilgi için bkz: Implementing An Implicit Transaction Using Transaction Scope bölümüne bakın. Bir işlem uygulama yazma hakkında daha fazla bilgi için bkz: Writing A Transactional Application.

Örnek oluşturma sırasında bir TransactionScope tarafından new ifadesi, hareket Yöneticisi'na katılmak için hangi işlem belirler. Belirlenen sonra kapsam her zaman bu harekete katılan. Karar iki etkene dayanır: bir ortam işlem mevcut olup olmadığını ve değerini TransactionScopeOption oluşturucuda parametresi. Ortam işlem içinde kodunuzu yürütür işlem bir işlemdir. Statik çağırarak bir başvuru ortam işlem edinebilirsiniz Current özelliği Transaction sınıfı. Bu parametre nasıl kullanıldığı hakkında daha fazla bilgi için lütfen "İşlem akışı yönetimi" bölümüne bakın Implementing An Implicit Transaction Using Transaction Scope bölümüne bakın.

İşlem kapsamı içinde hiçbir özel durum oluşursa (diğer bir deyişle, başlatılması arasında TransactionScope nesne ve arama, kendi Dispose yöntemi), ardından kapsam içinde yer aldığı işlem devam etmesine izin verilir. İşlem kapsamı içinde bir özel durum oluşursa, içinde yer aldığı işlem geri alınacak.

Uygulamanızı tüm iş tamamlandığında bir işlemde gerçekleştirmek istediği, çağırması gerekir Complete Bu işlem yöneticisi hareketi tamamlamak için uygun olduğunu bildirmek için yalnızca bir kez yöntemi. Bu yöntemi çağırmak başarısız olan işlemi durdurur.

Çağrı Dispose yöntemi işlem kapsamı sonunu işaretler. Bu yöntemi çağrıldıktan sonra oluşan özel durumlarının işlem etkileyebilir değil.

Değeri değiştirirseniz, Current bir kapsam içinde ne zaman bir özel durum Dispose çağrılır. Ancak, kapsam sonunda, önceki değerine geri yüklenir. Ayrıca, çağırırsanız Dispose üzerinde Current işlem oluşturulan bir işlem kapsam içinde bir işlem kapsamı sonunda durdurur.

Aşağıdaki örnek nasıl kullanılacağını gösterir TransactionScope bir işlemde katılmak için bir kod bloğunu tanımlamak için sınıf.

// This function takes arguments for 2 connection strings and commands to create a transaction 
// involving two SQL Servers. It returns a value > 0 if the transaction is committed, 0 if the 
// transaction is rolled back. To test this code, you can connect to two different databases 
// on the same server by altering the connection string, or to another 3rd party RDBMS by 
// altering the code in the connection2 code block.
static public int CreateTransactionScope(
    string connectString1, string connectString2,
    string commandText1, string commandText2)
{
    // Initialize the return value to zero and create a StringWriter to display results.
    int returnValue = 0;
    System.IO.StringWriter writer = new System.IO.StringWriter();

    try
    {
        // Create the TransactionScope to execute the commands, guaranteeing
        // that both commands can commit or roll back as a single unit of work.
        using (TransactionScope scope = new TransactionScope())
        {
            using (SqlConnection connection1 = new SqlConnection(connectString1))
            {
                // Opening the connection automatically enlists it in the 
                // TransactionScope as a lightweight transaction.
                connection1.Open();

                // Create the SqlCommand object and execute the first command.
                SqlCommand command1 = new SqlCommand(commandText1, connection1);
                returnValue = command1.ExecuteNonQuery();
                writer.WriteLine("Rows to be affected by command1: {0}", returnValue);

                // If you get here, this means that command1 succeeded. By nesting
                // the using block for connection2 inside that of connection1, you
                // conserve server and network resources as connection2 is opened
                // only when there is a chance that the transaction can commit.   
                using (SqlConnection connection2 = new SqlConnection(connectString2))
                {
                    // The transaction is escalated to a full distributed
                    // transaction when connection2 is opened.
                    connection2.Open();

                    // Execute the second command in the second database.
                    returnValue = 0;
                    SqlCommand command2 = new SqlCommand(commandText2, connection2);
                    returnValue = command2.ExecuteNonQuery();
                    writer.WriteLine("Rows to be affected by command2: {0}", returnValue);
                }
            }

            // The Complete method commits the transaction. If an exception has been thrown,
            // Complete is not  called and the transaction is rolled back.
            scope.Complete();

        }

    }
    catch (TransactionAbortedException ex)
    {
        writer.WriteLine("TransactionAbortedException Message: {0}", ex.Message);
    }
    catch (ApplicationException ex)
    {
        writer.WriteLine("ApplicationException Message: {0}", ex.Message);
    }

    // Display messages.
    Console.WriteLine(writer.ToString());

    return returnValue;
}

.NET Framework
2.0 sonrasında kullanılabilir

Güvenli iş parçacığı türüdür.

System.Transactions Ad alanı
Implementing An Implicit Transaction Using Transaction Scope

Başa dön
Show: