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}
}
这可能看起来很愚蠢,但 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}
}