.NET TransactionScope回滚命令

.NET TransactionScope回滚命令,.net,transactions,.net,Transactions,显然(因为文档中没有提到这一点),在.NET事务中(使用TransactionScope),回滚的顺序与提交的顺序相同,与注册的顺序相同 从逻辑上讲,回滚的顺序应该相反: 如果操作序列是“执行A”然后是“执行B”,那么我的回滚序列应该是“撤消B”,然后是“撤消A”。但多亏了TransactionScope,它不是,它总是“撤消A”,然后是“撤消B” 是我错过了一个选择,还是我会因为这个奇怪的命令而死 根据Microsoft的说法,如果您的事务范围在Complete()方法执行之前“超出范围”(即

显然(因为文档中没有提到这一点),在.NET事务中(使用TransactionScope),回滚的顺序与提交的顺序相同,与注册的顺序相同

从逻辑上讲,回滚的顺序应该相反: 如果操作序列是“执行A”然后是“执行B”,那么我的回滚序列应该是“撤消B”,然后是“撤消A”。但多亏了TransactionScope,它不是,它总是“撤消A”,然后是“撤消B”


是我错过了一个选择,还是我会因为这个奇怪的命令而死

根据Microsoft的说法,如果您的事务范围在Complete()方法执行之前“超出范围”(即,如果您从事务范围内抛出异常),则该范围内的事务应立即回滚

因此,如果希望事务以相反的顺序回滚,则应该嵌套它们。有关更多信息,请参阅以下文章:

使用事务作用域实现隐式事务

我正在使用事务实现一个事务文件系统(某种程度上)。文件操作可以按随机顺序执行,必须按相反顺序撤消。所以我不能嵌套事务。我想我已经完蛋了,需要写下我自己的文件操作列表,以便按正确的顺序反转它们。Picrap,有关于您需求的解决方案吗??