C# Azure Cosmos DB(EF/Core)-ID列包含类名

C# Azure Cosmos DB(EF/Core)-ID列包含类名,c#,json,entity-framework,azure-cosmosdb,C#,Json,Entity Framework,Azure Cosmosdb,我有一个.NET Core 3.1API项目,该项目有一个Cosmos DB存储,通过实体框架处理(Microsoft.EntityFrameworkCore.Cosmos-v3.1.5) 我有一个数据库模型: public class BikeRental { [Key] public Guid Id { get; set; } public string BikeId { get; set; } public string ShopId { get; set; } }

我有一个
.NET Core 3.1
API项目,该项目有一个Cosmos DB存储,通过
实体框架处理(Microsoft.EntityFrameworkCore.Cosmos-v3.1.5)

我有一个数据库模型:

public class BikeRental
{
    [Key] public Guid Id { get; set; }
    public string BikeId { get; set; }
    public string ShopId { get; set; }
}
然后,我有一个流畅的配置,将实体名称映射到camel case:

  protected override void OnModelCreating(ModelBuilder modelBuilder)
        {

            foreach (var entity in modelBuilder.Model.GetEntityTypes())
            {
                foreach (var property in entity.GetProperties())
                {
                    var camel = Char.ToLowerInvariant(property.Name[0]) + property.Name.Substring(1);
                    property.SetPropertyName(camel);
                    property.SetColumnName(camel);

                }
            }
}
保存到Cosmos后,“id”现在包含BikeRental的类名:

    {
    "id": "BikeRental|0042a855-0473-41d3-a344-49af808a0ffd",
    "bikeId": "eb65b93b-17d3-4829-9729-d48c029211fe2",
    "shopId": "636c08c4-600d-458a-98b7-8d312b8c18d2",

    "_rid": "2QZIAMVYbVQBAAAAAAAAAA==",
    "_self": "dbs/2QZIAA==/colls/2QZIAMVYbVQ=/docs/2QZIAMVYbVQBAAAAAAAAAA==/",
    "_etag": "\"00000000-0000-0000-4627-f721b0e701d6\"",
    "_attachments": "attachments/",
    "_ts": 1592564051
    }
如果我将模型更改为具有小写id,而不是我预期的记录写入Cosmos的id:

{
    "id": "ec86b971-b305-4055-b29f-8a4a7c5bf125",
    "bikeId": "eb65b93b-17d3-4829-9729-d48c029211fe2",
    "shopId": "636c08c4-600d-458a-98b7-8d312b8c18d2",

    "_rid": "2QZIAMVYbVQBAAAAAAAAAA==",
    "_self": "dbs/2QZIAA==/colls/2QZIAMVYbVQ=/docs/2QZIAMVYbVQBAAAAAAAAAA==/",
    "_etag": "\"00000000-0000-0000-4627-f721b0e701d6\"",
    "_attachments": "attachments/",
    "_ts": 1592564051
}

如果有任何关于如何解决这个问题的帮助或建议,我们将不胜感激

我的猜测是,它试图添加某种自动鉴别器。尝试添加并显式配置鉴别器。默认情况下,Cosmos将许多不同的类型放在同一个容器中,因此它们应该具有鉴别器属性。谢谢David。HasNoDiscriminator();'已经完成了这个技巧,因为这将是存储在这个容器中的唯一实体。我猜它正在尝试添加某种自动鉴别器。尝试添加并显式配置鉴别器。默认情况下,Cosmos将许多不同的类型放在同一个容器中,因此它们应该具有鉴别器属性。谢谢David。HasNoDiscriminator();'已完成此操作,因为这将是存储在此容器中的唯一实体。