RavenDbにスクリプトによるパッチ要求をコードで発行した場合、パッチ要求が完了したときにコードで検出できる方法はありますか?UpdateByIndexを使用しているときにScripted Patch Requestが完了したときを知る
更新 は具体的に私はScriptedPatchRequest
DatabaseCommands.UpdateByIndex
とを使用する - と私はパッチを進める前に完了していることを確認する必要があります。
RavenDbにスクリプトによるパッチ要求をコードで発行した場合、パッチ要求が完了したときにコードで検出できる方法はありますか?UpdateByIndexを使用しているときにScripted Patch Requestが完了したときを知る
更新 は具体的に私はScriptedPatchRequest
DatabaseCommands.UpdateByIndex
とを使用する - と私はパッチを進める前に完了していることを確認する必要があります。
DatabaseCommands.UpdateByIndex
は、Operation
のインスタンスを返します。これでWaitForCompletion()
に電話して、操作が完了するまで待つことができます。それがあなたの好みの味なら、このメソッドの非同期バージョンもあります。
DatabaseCommands.Patch
同期方法は、パッチの実行が終了するまでブロックします。
非同期AsyncDatabaseCommands.PatchAsync
メソッドは、パッチの実行が完了すると完了するTask<RavenJObject>
を返します。await
ed。
このように、クライアントAPIは、ブロッキングと非ブロッキングの両方のパッチ要求機能を提供します。 DatabaseCommands
とAsyncDatabaseCommands
の他のすべてのメソッドについても同様です。
TBH私は、パッチコマンドの動作がむしろうまく記述されていないと思います...私は実験によってそれを理解しました。
ありがとうございます。単一の文書にパッチを当てるのに最適です。しかし、私はしばしば 'DatabaseCommands.UpdateByIndex'を使ってコレクション全体を修正し、それが_not_ブロッキングではないことを知ることができます。これは本当に私が助けが必要なことです - 私はこれを反映するために私の質問を更新します。 –