12

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

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

    t.Rollback();
}

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

4

2 回答 2

21

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

于 2013-03-07T18:43:08.090 回答
-4

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

于 2013-03-07T18:34:05.590 回答