【发布时间】:2020-02-07 08:41:18
【问题描述】:
我有一个复杂的 SQL 查询,它返回如下表:
我用这个对象描述了它 - IEnumerable<Invoice> 其中:
public partial class Invoice
{
public string DocumentNumber { get; set; }
public DateTime? DocumentDate { get; set; }
public string DocumentReference { get; set; }
public string SerialNumber { get; set; }
public string ProductCode { get; set; }
public string Description { get; set; }
public string Certificate { get; set; }
}
这些对象的集合的特点是它们按前三个字段分组(如果它们相同),其余字段不同。
我的任务是实现这些数据的分层表示,它应该看起来像这样:
我自己决定,我的最终视图对象应该具有以下结构 - Dictionary<InvoiceHeader, List<InvoiceHierarchi>> 其中:
public class InvoiceHeader
{
public string DocumentNumber { get; set; }
public DateTime? DocumentDate { get; set; }
public string DocumentReference { get; set; }
}
public class InvoiceHierarchi
{
public string SerialNumber { get; set; }
public string ProductCode { get; set; }
public string Description { get; set; }
public string Certificate { get; set; }
}
问题#1:我能否编写将IEnumerable<Invoice> 转换为Dictionary<InvoiceHeader, List<InvoiceHierarchi>> 的LINQ 查询以及如何正确执行?
问题 #2:总的来说,我是否选择了正确的方法来解决我的任务?
【问题讨论】:
-
我可能只有一个 List
- 其中 Invoice 包含一个 List 或类似的东西。然后,您可以更轻松地在前端进行过滤/排序,而不是使用字典。试试谷歌订单/订单线。听起来很像一个类似的问题:)
标签: c# linq dictionary ienumerable