Azure Microsoft.Azure.Documents.Document
クラスから継承したドキュメントがあります。これは自分のプロパティの構造です。変更を保存しないDocumentDBでのドキュメントの置換
[JsonProperty("name")]
public string Name { get; set; }
[JsonProperty("establishment")]
public string Establishment { get; set; }
[JsonProperty("description")]
public string Description { get; set; }
ドキュメントを正常に保存できますが、ドキュメントを更新して置き換えるときに問題が発生しています。
たとえば、次のようにすると、ドキュメントの説明が更新されません。
var project = documentRepository.FindById<ProjectDocument>("7fc2899e-4c7f-4c09-9f60-4ca28caca750");
project.Description = "Foo";
await documentRepository.Save(project);
ただし、これを行うとします。
var project = documentRepository.FindById<ProjectDocument>("7fc2899e-4c7f-4c09-9f60-4ca28caca750");
project.SetPropertyValue("description", "Foo");
await documentRepository.Save(project);
明らかに、私は不必要と思われるので、これを行う必要はありません。
Documental
という独自のライブラリを使用してリポジトリパターンを使用していますが、基本的なコードはAzure DocumentDBライブラリを呼び出すだけであり、DocumentDBライブラリを直接使用する場合は同じ問題があります。
更新:オブジェクトのランタイムビューには、変更されたフィールドの正しい値が含まれていますが、SetPropertyValue
メソッドを使用しない限り、オブジェクトの動的ビューには常に元の値が含まれます。
ReplaceDocumentAsyncメソッドを試しましたか? https://msdn.microsoft.com/library/azure/microsoft.azure.documents.client.documentclient.replacedocumentasync.aspx – Aravind
ええ、私のライブラリはReplaceDocumentAsyncの呼び出しに使用されていましたが、その後UpsertDocumentAsync(https:// github .com/tomeglenn/documental/blob/develop/Documental/Core/DocumentRepository.cs#L75) しかし、私もdocumentClient.ReplaceDocumentAsync(document)を使って直接試しましたが、同じ問題が発生します。 –
あなたはこの問題にぶつかっていますか? https://github.com/Azure/azure-documentdb-dotnet/issues/132また、実際のアップデートは機能ではなく、ドキュメントの置換だけが内部で行われていますhttps://feedback.azure.com/forums/263030-documentdb/suggestions/6693091-be-able-to-do-partial-updates-on-document – Aravind