Azure cosmosdb Azure DocumentDb id

Azure cosmosdb Azure DocumentDb id,azure-cosmosdb,Azure Cosmosdb,我在玩azure文档数据库时遇到了一个关于ID的问题,或者说是混淆了ID。我知道DocumentDb会为每个文档生成一个“小写”的“id”属性,这对我来说很好,但我似乎不知道在使用.net客户端时如何获取这个“id”。我的代码如下所示 public class Company { public Guid Id { get; set; } // this somehow does not get mapped to the "id" in the document.

我在玩azure文档数据库时遇到了一个关于ID的问题,或者说是混淆了ID。我知道DocumentDb会为每个文档生成一个“小写”的“id”属性,这对我来说很好,但我似乎不知道在使用.net客户端时如何获取这个“id”。我的代码如下所示

 public class Company
    {
        public Guid Id { get; set; } // this somehow does not get mapped to the "id" in the document.
        public string Name { get; set; }
        public string Address { get; set; }

    }
所以当我问你喜欢吗

client.CreateDocumentQuery<Company>(collection.DocumentsLink).ToList();
client.CreateDocumentQuery(collection.DocumentsLink.ToList();
未映射id属性。我想我还没有理解文档db中的ID概念,以及它如何正确地映射到您的实体。
非常感谢您的帮助。

尝试将您的公司实体更改为

    [JsonProperty("id")]
    public String Id { get; set; }
这将把documentdb生成的Id加载到Id字段中


如果不起作用,请告诉我。

主要问题,当您的公司用id而不是id修改时,id属性映射了吗?不所以,它不是您的Id。它是DocumentDb数据库Id。我已尝试将其重命名为小写Id,但仍然无法恢复。我想。。。让我们检查一下有什么问题。你们能用你们的源代码修改这个问题吗?这很有效。但也意味着我必须改变我的模型以适应持久化层。无论如何,你都需要改变你的模型,因为它是由DocumentDB生成的,你不能为它设置一个setter。@Darren没有。如果未提供
id
,则会生成该id。可以始终提供
id
。只需要确保案例设置正确。这帮助我解决了相反的问题,我需要设置进入documentDB的对象的Id字段。基本上,您需要匹配documentDB记录的id字段的名称。