Fil*_*erg 8 .net c# transactions
首先,这不是关于数据库事务的帖子.我想更多地了解.NET 2.0及更高版本中的TransactionModel.由于我正在针对.NET 3.5进行开发,因此新版本的应用程序会受到关注.
现在,我想要实现的是以下内容
public void Withdraw(double amount)
{
using (TransactionScope scope = new TransactionScope())
{
Money -= amount;
if (Money > 0)
scope.Complete();
}
}
Run Code Online (Sandbox Code Playgroud)
这意味着当Money小于0时,内部的所有内容都TransactionScope应该是RolledBack,但是,它不是.
一个简单的测试如下
ImportantObject obj = new ImportantObject(1);
Console.WriteLine(obj.Money);
obj.Withdraw(101);
Console.WriteLine(obj.Money);
Run Code Online (Sandbox Code Playgroud)
前提是Stadard Money金额为100.
我在这里遗漏了什么,或者这不是交易应该如何运作的?使用这个型号的性能损失是多少?
我认为你对TransactionScope的设计工作感到困惑.TransactionScope旨在提交或回滚您连接到的数据库中的更改.它不会反转代码中对象的更改.它不会反转'Money'中包含的值.
兰迪
| 归档时间: |
|
| 查看次数: |
642 次 |
| 最近记录: |