だから私はパッチを当てることができること、保存できること、置くことができることを知っていますが、私が明確にしているのは、オブジェクトを追加したい場合に「アップサート」タイプの操作を行う方法です。存在しないか、存在する場合はパッチを適用します。
これは RavenDb 4.1+ で可能ですか?
今、私はここにいますが、それは間違っていると感じています:
foreach (var flag in data)
{
var exists = await _session.Advanced.ExistsAsync(flag.Id);
if (!exists)
{
await _session.StoreAsync(flag);
}
else
{
await _store.Operations.ForDatabase("FeatureFlags").SendAsync(
new PatchOperation(
id: flag.Id,
changeVector: null,
patch: new PatchRequest
{
Script = @"
this.Name = args.Name
this.Description = args.Description
",
Values =
{
["Name"] = flag.Name,
["Description"] = flag.Description
}
}));
}
}
await _session.SaveChangesAsync();