1

だから私はパッチを当てることができること、保存できること、置くことができることを知っていますが、私が明確にしているのは、オブジェクトを追加したい場合に「アップサート」タイプの操作を行う方法です。存在しないか、存在する場合はパッチを適用します。

これは 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();
4

1 に答える 1