Przede wszystkim nie będzie to post o transakcjach baz danych. Chcę wiedzieć więcej o TransactionModel w .NET 2.0 i nowszych. Odkąd pracuję przeciwko .NET 3.5 nowsze modele są uznawane.Transakcje w C#
Teraz, co chciałbym acheive jest czymś następującym
public void Withdraw(double amount)
{
using (TransactionScope scope = new TransactionScope())
{
Money -= amount;
if (Money > 0)
scope.Complete();
}
}
co oznaczałoby, że gdy pieniędzy jest mniej niż 0, wszystko wewnątrz TransactionScope
powinny być RolledBack, jednak tak nie jest.
Prosty test jak następuje
ImportantObject obj = new ImportantObject(1);
Console.WriteLine(obj.Money);
obj.Withdraw(101);
Console.WriteLine(obj.Money);
warunkiem że kwota Stadard Pieniądze 100.
Czy brakuje czegoś tutaj lub jest to nie jak transakcje powinny pracować? A jakie są straty wydajności za pomocą tego modelu?
Wygląda na to, że tego właśnie szukałem. Dzięki. –