【发布时间】:2015-08-04 10:24:05
【问题描述】:
我有 3 张桌子。订单、订单项和订单项服务。每个订单可以包含多个 OrderItem,每个 OrderItem 可以包含多个 OrderItemService。 我想从 Linq 中的这些表中获取所有订单的数据列表。我可以编写一个连接,但是如何在 select clasue 中创建一个匿名数据类型,它可以给我这个层次结构中的订单列表?
如果我使用导航属性,然后在下面显示的侧边选择子句中选择 OrderItemServices,它将触发我想要避免的每个 OrderItemService 的单独选择查询。
from order in Orders
select new
{
ActiveOrders = order,
ActiveOrderItems =order.OrderItems,
ActiveServices = order.OrderItems.Select(o => o.OrderItemServices)
}
是否可以将每个订单与其内部的多个项目和多个服务的结构组合在一起?
【问题讨论】:
-
所以你想避免使用连接?
-
我认为 OP 正在寻找分层数据集,而不是“扁平化”数据集。
-
我不想回避。我不想像上面的查询那样触发 OrderItems 和 OrderItemServices 的单独查询。