实体框架Linq查询不相关的子表

时间:2015-08-03 15:52:16

标签: c# linq entity-framework

我正在使用Entity Framework 6.1.3生成实体和数据模型。

如果我有两张桌子:订单 - > OrderDetails,它们之间的关系(OrderId),然后我可以通过以下查询得到所有订单和相关的OrderDetails

dbContext.Order().Include(a => a.OrderDetails);

但是如果我为Orders创建了一个视图(vOrder),那么模型中的vOrder和OrderDetails之间没有直接关系,尽管我可以将它们与OrderId上的连接链接在一起。我怎样才能从vOrder和相关的OrderDetails获取所有数据。除非我手动添加所有导航属性,否则以下查询无效。

dbContext.vOrder().Include(a => a.OrderDetails);

是否有简单的LINQ查询来完成预期的查询?

感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

手动连接并返回包含两者的匿名对象。

类似的东西:

dbContext.vOrder
  .GroupJoin(
    dbContext.OrderDetails,
    v=>v.orderid,
    od=>o.orderid,
    (v,od)=>new {v=v,od=od});

当然,您可以将适当的导航属性添加到vOrder并完全按照您的说法进行操作。

答案 1 :(得分:0)

为什么不在视图中包含更多列(或创建另一个包含所有必需数据的视图,如果您不想修改第一个视图)?