我想更新CosmosDB中的文档,为此,我首先检索文档并将其转换为类型化对象,如下所示:
public async Task<T> ReadRawAsync(Expression<Func<T, bool>> predicate)
{
var query = _client
.CreateDocumentQuery<T>(_uri)
.Where(predicate)
.AsDocumentQuery();
var results = new List<T>();
while (query.HasMoreResults)
results.AddRange(await query.ExecuteNextAsync<T>());
return results.FirstOrDefault();
}经过一些转换后,我想更新(替换)该文档:
await _client.ReplaceDocumentAsync(_uri, document);我不完全确定这是否可以这样做。你能指出做这样的更新需要什么吗?
发布于 2018-07-09 09:47:27
只有当ReplaceDocumentAsync有一个名为id的属性时才能工作(注意小写,它需要序列化为小写id,所以您可能需要一个JsonProperty(" id ")),并且集合中必须存在带有这个id的文档。
另外,如果您的集合是分区的,那么您需要在这个方法中提供下一个对象,即RequestOptions,并在其中添加这个文档的PartitionKey值。
https://stackoverflow.com/questions/51242416
复制相似问题