调查一下,我确认了例如o“myInt”的值在以下场景中没有回滚
int myInt = 10;
using (TransactionScope scope = new TransactionScope(TransactionScopeOption.RequiresNew))
{
myInt=20;
Transaction t = Transaction.Current;
t.Rollback();
}
所以它让我想到“TransactionScope是否只回滚与数据库相关的活动?或者事务可以管理其他事情,我不知道那些?”
答案 0 :(得分:19)
当前事务仅影响称为资源管理器的特定对象。这些对象必须实现特定的接口才能参与事务。 ADO.NET SqlConnection对象就是一个例子。创建一个充当“事务性内存”的对象并不困难。这些对象称为挥发性资源管理器。一个简单的例子是here。
答案 1 :(得分:-3)
TransactionScope(和Transactions)仅用于处理数据库查询。 “回滚”只是暂时保留的更改(例如你的int变量)是没有意义的。