我有一个.NET Core 3.1
API项目,该项目具有通过Entity Framework
(Microsoft.EntityFrameworkCore.Cosmos-v3.1.5)处理的Cosmos数据库存储。
我有一个数据库模型:
public class BikeRental
{
[Key] public Guid Id { get; set; }
public string BikeId { get; set; }
public string ShopId { get; set; }
}
然后我有了一个流畅的配置,该配置将实体名称映射到驼峰大小写:
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(而不是id),记录将按我的期望写入Cosmos:
{
"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
}
如果对解决此问题有任何帮助或建议,将不胜感激!