【问题标题】:What does a TransactionScope really doTransactionScope 的真正作用是什么
【发布时间】:2013-02-23 02:38:39
【问题描述】:

查看它,我验证了例如值 o "myInt" 在以下场景中没有回滚

int myInt = 10;
using (TransactionScope scope = new TransactionScope(TransactionScopeOption.RequiresNew))
{
    myInt=20;
    Transaction t = Transaction.Current;

    t.Rollback();
}

所以这让我想到“TransactionScope 是否只回滚与数据库相关的活动?还是事务可以管理其他事情而我不知道这些事情?”

【问题讨论】:

    标签: c# transactions transactionscope distributed-transactions


    【解决方案1】:

    TransactionScope(和事务)仅用于处理数据库查询。无论如何“回滚”只是暂时保留的更改(例如您的 int 变量)是没有意义的。

    【讨论】:

    • -1 你所说的完全没有意义......如果我将此值保存到文本文件怎么办?那它会回滚吗?
    • 不,我的意思是非持久性数据。 FileWriter 将有自己的“回滚”更改机制,但您仍然不能使用 TransactionScope。
    【解决方案2】:

    当前事务仅影响称为资源管理器的特定对象。这些对象必须实现特定的接口才能参与事务。 ADO.NET SqlConnection 对象就是一个例子。创建一个用作“事务性内存”的对象并不难。这些对象称为易失性资源管理器。一个简单的例子是here

    【讨论】:

      猜你喜欢
      • 2014-04-26
      • 2015-10-14
      • 1970-01-01
      • 1970-01-01
      • 2013-02-27
      • 2011-08-19
      • 2019-10-31
      • 2012-10-17
      • 1970-01-01
      相关资源
      最近更新 更多