C#

2010-01-07 12 views
8

ile ilgili tüm işlemler Öncelikle bu, Veritabanı İşlemleri ile ilgili bir gönderi olmayacaktır. .NET 2.0 ve üstü TransactionModel hakkında daha fazla bilgi edinmek istiyorum. .NET 3.5'e karşı geliştirdiğimden daha yeni modeller onaylandı.C#

Peki ne modernleşmek istiyorum Para 0'dan az olduğunda, TransactionScope içindeki her şey RolledBack olması gerektiği anlamına geleceğini aşağıdaki

public void Withdraw(double amount) 
    { 
     using (TransactionScope scope = new TransactionScope()) 
     { 
      Money -= amount; 

      if (Money > 0) 
       scope.Complete(); 
     } 
    } 

gibi bir şey, ancak, o değil.

takip

 ImportantObject obj = new ImportantObject(1); 

     Console.WriteLine(obj.Money); 

     obj.Withdraw(101); 

     Console.WriteLine(obj.Money); 

olarak basit bir test stadard Para miktarı 100

burada bir şey kaçırdınız mı veya bu işlemler nasıl çalışması gerektiğini değil mi kaydıyla? Ve bu modeli kullanarak performans kayıpları nelerdir?

cevap

6

TransactionScope'un yapmak için tasarladığı şeyle karıştırıldığını düşünüyorum. TransactionScope, bağlı olduğunuz veritabanında değişiklik yapmak veya geri almak için tasarlanmıştır. Koddaki nesnelerdeki değişiklikleri geri döndürmez. 'Para' içinde yer alan değeri tersine çevirmez. Ne Peşinde olduğun STM denir

Randy