【发布时间】:2016-07-12 08:49:09
【问题描述】:
我有一个继承自 Azure Microsoft.Azure.Documents.Document 类的文档,这是我的属性的结构。
[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 方法吗? msdn.microsoft.com/library/azure/…
-
是的,所以我的库曾经调用 ReplaceDocumentAsync 但后来被替换为 UpsertDocumentAsync (github.com/tomeglenn/documental/blob/develop/Documental/Core/…) 但是,我也尝试过直接使用 documentClient.ReplaceDocumentAsync(document) 但我遇到了同样的问题。
-
你有没有遇到这个问题? github.com/Azure/azure-documentdb-dotnet/issues/132 真正的更新也不是一项功能,仅在内部进行替换文档feedback.azure.com/forums/263030-documentdb/suggestions/…
-
嗨,不,我不这么认为,因为我尝试过 ReplaceDocumentAsync 并在那里遇到同样的问题。
-
也许你应该在 github 页面中提出一个包含所有详细信息的错误报告。
标签: c# azure azure-cosmosdb nosql