小编Mik*_*ike的帖子

Azure Cosmos DB (EF/Core) - 驼峰式大小写属性名称

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

我有一个数据库模型:

[JsonObject(NamingStrategyType = typeof(CamelCaseNamingStrategy))]
public class BikeRental
{
    [JsonProperty(PropertyName = "id")]
    [Key]
    public Guid Id { get; set; }

    [JsonProperty(PropertyName = "bikeId")]
    public string BikeId { get; set; }

    [JsonProperty(PropertyName = "shopId")]
    public string ShopId { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

保存到 CosmosDB 数据库后,将使用类属性名称对列进行序列化,忽略“PropertyName”属性。例如,如果“bikeId”更改为“testBikeId”,则仍写为“BikeId”。

{
    "Id": "192dfdf4-54cb-4290-a478-7035518983ca",
    "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
}
Run Code Online (Sandbox Code Playgroud)

任何有关如何解决此问题的帮助或建议将不胜感激!

编辑:将对象保存到 Cosmos 是通过以下方式执行的:

var response = _context.BikeRentals.Add(obj) …
Run Code Online (Sandbox Code Playgroud)

c# json entity-framework azure-cosmosdb

8
推荐指数
2
解决办法
3841
查看次数

标签 统计

azure-cosmosdb ×1

c# ×1

entity-framework ×1

json ×1