gpt4 book ai didi

c# - DocumentDB 替换文档失败

转载 作者:可可西里 更新时间:2023-11-01 08:43:29 28 4
gpt4 key购买 nike

在使用 .NET SDK 的 Azure DocumentDB 中,调用 ReplaceDocumentAsync 时出现以下错误:

“错误”:[“输入内容无效,因为缺少必需的属性 - 'id; ' -”,“请求负载无效。请确保提供有效的请求负载。”]

这是一个博客文章场景,当添加新评论时,我获取文档,添加评论并调用 ReplaceDocumentAsync。我是这样做的:

string query = "SELECT * FROM Posts p WHERE p.id = 'some guid'";

var post = Client.CreateDocumentQuery<Post>(Collection.DocumentsLink, query)
.AsEnumerable().FirstOrDefault();

post.Comments.Add(comment);

Document doc = Client.CreateDocumentQuery(Collection.DocumentsLink)
.Where(d => d.Id == id)
.AsEnumerable()
.FirstOrDefault();

var document = await Client.ReplaceDocumentAsync(doc.SelfLink, item);

课后:

public class Post
{
public Post()
{
Comments = new List<Comment>();
}

public Guid Id { get; set; }
public List<Comment> Comments { get; set; }
...
}

我做错了什么?

最佳答案

好吧,我明白了。

DocumentDB 中的每个文档都需要有一个“id”属性。如果某个类没有,则会为其分配一个并保存到文档中。由于 DocumentDB 区分大小写,我的“Id”只是另一个属性,并且添加了一个单独的“id”并将其分配给文档。

我通过删除并重新创建具有以下 Id 属性的所有文档解决了该问题:

[JsonProperty(PropertyName = "id")]
public Guid Id { get; set; }

关于c# - DocumentDB 替换文档失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29725561/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com