说我在C#中有一些机场,飞机,乘客和座位课程。乘客拥有飞机的身份,而飞机拥有机场的身份证。乘客也有座位的身份。
如何编写linq查询以将它们构建为层次结构,然后将它们呈现为HTML表格?
我需要它看起来像:
1 2 3
Gatwick
747 July Kim Ben
767 Neal Toby
A380 Becky
Hong Kong
747 Gary Steve Gary
MiG-35 Ted
etc..
(座位号位于顶部)
我一直在LinqPad面前摸不着头脑,但我只能在层次结构中获得一个级别。我想我可能需要使用嵌套的GridViews或者编写一个自定义控件来渲染生成的对象,但我不确定最好的approch。
理想情况下,我希望通过单个查询获取所有数据(之前的程序员已经使用每个单元格一个查询完成了该操作,页面需要一分钟才能加载!)
非常感谢
答案 0 :(得分:0)
这需要2个LINQ查询:
然后按机场分组,然后是飞机,然后在每个飞机分组中,你有乘客 - 你用他们的座位收集他们。(
passengers
.GroupBy(p => p.Aeroplane)
.GroupBy(p => p.Airport)
.Join(seats, p=>p.Seat, s=>s, (p,s)=>new { Passenger = p, Seat = seat })
这将为您提供一系列乘客及其在每架飞机上的座位,然后在每个机场。