Abh*_*hek 3 .net c# transactionscope azure azure-cosmosdb
我试图使用DocumentDb写作交易的一部分,如下所示 -
using (var scope = new TransactionScope)
{
//first transaction
//write to document db
//third transaction
}
Run Code Online (Sandbox Code Playgroud)
我观察到,如果第三个事务失败,则不会回滚documentDb write,我仍然会在集合中看到该文档.第一个事务(在这种情况下为NEventStore)完美回滚.有谁知道DocumentDb是否支持TrnasactionScope.如果我有嵌套交易怎么办?
谢谢!
编辑:所以看起来DocumentDb不支持TransactionScope,它对它们一无所知.有没有办法让DocumentDb事务成为C#外部事务的一部分?有没有人以前遇到过这个用例?
编辑2:按照建议在此处跟进问题和答案
DocumentDB操作独立于TransactionScope.一旦操作返回,就完成了.数据库服务不知道任何事情TransactionScope,也没有以任何方式连接到它.
在使用服务器端存储过程时,DocumentDB确实具有自己的事务范围.您可以在存储过程中进行多个数据库调用,如果一切都成功,则存储过程退出时会进行隐式提交.如果出现错误并抛出异常,则会对存储过程范围内对数据库执行的所有操作执行隐式回滚.
| 归档时间: |
|
| 查看次数: |
1914 次 |
| 最近记录: |