c# - C# 中的事务

标签 c# .net transactions

首先,这不是一篇关于数据库事务的文章。我想了解更多关于 TransactionModel 的信息在 .NET 2.0 及更高版本中。由于我是针对 .NET 3.5 进行开发的,所以较新的模型很受欢迎。

现在,我想实现的是类似下面的东西

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

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

这意味着当 Money 小于 0 时,TransactionScope 中的所有内容都应该回滚,但事实并非如此。

下面是一个简单的测试

        ImportantObject obj = new ImportantObject(1);

        Console.WriteLine(obj.Money);

        obj.Withdraw(101);

        Console.WriteLine(obj.Money);

假设 Stadard Money 金额为 100。

我是不是漏掉了什么,或者这不是交易的运作方式?使用该模型的性能损失是多少?

最佳答案

关于c# - C# 中的事务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2020660/

相关文章:

javascript - MMS 是否支持发送 HTML 内容?

c# - 如何通过Word文档修改 "walk"的内容?

java - Math.Tan() near -Pi/2 在 .NET 中错误,在 Java 中正确?

MYSQL批量删除FROM 80张表

sql-server - 分布式事务的性能开销

mysql - 使用 Hibernate 和 MySQL,全局和本地的 Spring 事务管理

c# - 如何序列化可能只有唯一实例的类

javascript - 以 JSON 形式返回字典并使用 JS 函数成功访问其内容 - C#

C#:在哪些类中使用了 ICommandExecutor 接口(interface)?

c# - 在 Syncfusion DocIo .Net Core 中更改图像(图片)格式