C# 在C Aspnet WebApi结果对象上添加自定义键
我必须创建Asp.NETWebAPI 我有一个结构化对象C# 在C Aspnet WebApi结果对象上添加自定义键,c#,asp.net,json,asp.net-web-api,asp.net-web-api2,C#,Asp.net,Json,Asp.net Web Api,Asp.net Web Api2,我必须创建Asp.NETWebAPI 我有一个结构化对象 [Serializable()] public partial class OrderList { [Key] public string ClienteId; public List<Ordine> Ordini; } public class Ordine { [Key] public string CodOrd; public string Stato; publ
[Serializable()]
public partial class OrderList
{
[Key]
public string ClienteId;
public List<Ordine> Ordini;
}
public class Ordine
{
[Key]
public string CodOrd;
public string Stato;
public string Pagamento;
public List<Riga> Righe;
}
public class Riga
{
public string Articolo;
public string Quantita;
public string Listino;
}
但我的结果是:
{
"1297": {
"ClienteId": "1297",
"Ordini": {
"OC_1/2985": {
"CodOrd": "OC_1/2985",
"Stato": "EVASO",
"Pagamento": "CONTRASSEGNO AL CORRIERE",
"Righe": [
{
"Articolo": "B892VR",
"Quantita": "12",
"Listino": "2,5"
},
{
"Articolo": "B895VR",
"Quantita": "12",
"Listino": "3,2"
}
]
}
}
},
"3458": {
"ClienteId": "3458",
"Ordini": {
"OW_285": {
"CodOrd": "OW_285",
"Stato": "EVASO",
"Pagamento": "CONTRASSEGNO AL CORRIERE",
"Righe": [
{
"Articolo": "5114-21",
"Quantita": "6",
"Listino": "2,8"
},
{
"Articolo": "T1057",
"Quantita": "6",
"Listino": "12,8"
}
]
}
}
}
}
如何在结构上添加对象键?使用字典而不是列表。注意:您有一个查询来选择客户端,然后为每个客户端添加一个额外的查询。这被称为n+1问题,在许多客户的情况下无法很好地扩展。Thx Wiktor,但我必须列出有订单和没有订单的客户。Thx Grundy,你的意思是我必须像这样使用字典?[Serializable]公共部分类OrderList{[Key]公共字典客户端;}
[
{
"ClienteId": "3458",
"Ordini": [
{
"CodOrd": "OW_285",
"Stato": "EVASO",
"Pagamento": "CONTRASSEGNO AL CORRIERE",
"Righe": [
{
"Articolo": "5114-21",
"Quantita": "6",
"Listino": "2,8"
},
{
"Articolo": "T1057",
"Quantita": "6",
"Listino": "12,8"
}
]
}
]
},
{
"ClienteId": "1297",
"Ordini": [
{
"CodOrd": "OC_1/2985",
"Stato": "EVASO",
"Pagamento": "CONTRASSEGNO AL CORRIERE",
"Righe": [
{
"Articolo": "B892VR",
"Quantita": "12",
"Listino": "2,5"
},
{
"Articolo": "B895VR",
"Quantita": "12",
"Listino": "3,2"
}
]
}
]
}
]
{
"1297": {
"ClienteId": "1297",
"Ordini": {
"OC_1/2985": {
"CodOrd": "OC_1/2985",
"Stato": "EVASO",
"Pagamento": "CONTRASSEGNO AL CORRIERE",
"Righe": [
{
"Articolo": "B892VR",
"Quantita": "12",
"Listino": "2,5"
},
{
"Articolo": "B895VR",
"Quantita": "12",
"Listino": "3,2"
}
]
}
}
},
"3458": {
"ClienteId": "3458",
"Ordini": {
"OW_285": {
"CodOrd": "OW_285",
"Stato": "EVASO",
"Pagamento": "CONTRASSEGNO AL CORRIERE",
"Righe": [
{
"Articolo": "5114-21",
"Quantita": "6",
"Listino": "2,8"
},
{
"Articolo": "T1057",
"Quantita": "6",
"Listino": "12,8"
}
]
}
}
}
}