如果我通过代码向我的RavenDb发出脚本化补丁请求,是否有任何方法可以发现(使用代码)补丁请求是否/何时完成?
更新
具体来说,我将ScriptedPatchRequest
与DatabaseCommands.UpdateByIndex
一起使用 - 我需要确保修补程序已完成,然后再继续。
答案 0 :(得分:4)
同步DatabaseCommands.Patch
方法将一直阻塞,直到补丁程序运行完毕。
异步AsyncDatabaseCommands.PatchAsync
方法返回在修补程序运行完成时完成的Task<RavenJObject>
,因此可以await
编辑。
这样,客户端API提供阻塞和非阻塞补丁请求功能。 DatabaseCommands
和AsyncDatabaseCommands
上的所有其他方法也是如此。
TBH我认为Patch命令的行为记录得相当糟糕......我只是通过实验来解决它。
答案 1 :(得分:0)
DatabaseCommands.UpdateByIndex
返回Operation
的实例。您可以在此呼叫WaitForCompletion()
,等待操作完成。如果这是你喜欢的风格,那么这个方法也有异步版本。