Change/control 属性 保存 CosmosDb 文档时的顺序

Change/control property order in CosmosDb document when saving it

这可能看起来很愚蠢,但 irritating.I 使用 C# 和 cosmosdb sdk

我在数据库中有一个文件,比如说员工,在我的代码中有一个相应的员工-class。

employee
{
   id: "123",
   firstName : "Hans",
   age : 23
}

并且在将代码中的 Employee-class 更新为

public class Employee
{
   public string Id{get;set}
   public string FirstName{get;set}
   public string LastName{get;set} // new
   public int Age{get;set}
   public Dictionary<string, object> OtherProperties {get;set} // also new
}

...然后用代码 (GetById) 读取现有文档并再次插入我的文档如下所示

employee
{  
   otherProperties : null,
   id: "123"
   firstName : "Hans",
   lastName : null,
   age : 23
}

令我恼火的是 otherProperties-属性 现在是第一个。 lastName(也是添加的)恰好在 class 中的位置。我能以某种方式解决这个问题吗?

我已经测试过 属性 在 class 中的另一个顺序,并且还尝试将数据类型更改为字符串,没有区别。

您能从功能方面解释一下属性顺序会产生什么问题吗?

您可以在 JsonProperty 上使用 Newtonsoft.Json 的 Order 来装饰 class:https://www.newtonsoft.com/json/help/html/JsonPropertyOrder.htm 但除了美观之外,还有功能差异不大。

类似于:

public class Employee
{
   [JsonProperty(Order = 1)]
   public string Id{get;set}
   
   [JsonProperty(Order = 2)]
   public string FirstName{get;set}
   
   [JsonProperty(Order = 3)]
   public string LastName{get;set}
   
   [JsonProperty(Order = 4)]
   public int Age{get;set}
   
   [JsonProperty(Order = 5)]
   public Dictionary<string, object> OtherProperties {get;set}
}