我想在这种情况下使用TransactionScope,虽然我认为这是正确的方法,但我从未做过,而且遇到了困难。
在伪代码中,我想做的是以下内容:
我是否需要为文件复制和Web服务操作定义自己的资源管理器,以便它们能够正确实现回滚?
我一直在尝试搜索,但如果有人能指出我正确的方向,我会非常感激。谢谢!
答案 0 :(得分:0)
虽然我不是使用TransactionScope
对象的专家,但我不相信您可以使用它们回滚非数据库功能。但是, 可以毫无问题地将非相关功能添加到其中。正如@JeremyThompson正确提到的那样,您需要添加try
和catch
块来实现此功能:
using (TransactionScope transactionScope = new TransactionScope())
{
try
{
// Do your database work here
// Then do your hard drive work here
transactionScope.Complete();
}
catch
{
// Manually rollback your hard drive work here
}
}