我一直在使用TransactionScope来处理数据库,感觉还不错.我正在寻找的是以下内容:
using(var scope=new TransactionScope())
{
// Do something with a few files...
scope.Complete();
}
Run Code Online (Sandbox Code Playgroud)
但显然这不起作用 - 如果有20个文件,并且第9个文件发生异常,所有之前的8个仍然保持更改而其余的保持不变 - 不执行回滚.那么,为文件实现类似范围的行为的最佳方法是什么?
我希望有一个简单的答案,但如果没有,你能给我一些指示,或者指点我的相关文章吗?
我有包含运行处理器的服务,它做了两件事:
1- Create a file in a directory.
2- Set your own status to "Processed".
Run Code Online (Sandbox Code Playgroud)
但是,当服务在处理过程中完全停止时,该文件将在目录中创建,但该过程未完成,如下所示:
1- Create a file in a directory.
-----SERVICE STOPPED-----
2- Set your own status to "Processed".
Run Code Online (Sandbox Code Playgroud)
我需要一种方法来使用数据库命令来处理IO操作,该怎么做?
编辑 - 重要
问题是创建的文件是由另一个应用程序捕获的,因此只有在命令执行成功的情况下才需要真正创建文件.因为如果创建文件而另一个应用程序捕获了他,并且在发生数据库错误之后,问题将继续存在.
OBS:我正在使用c#开发.