我正在使用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查询来完成预期的查询?
感谢您的帮助。
答案 0 :(得分:2)
手动连接并返回包含两者的匿名对象。
类似的东西:
dbContext.vOrder
.GroupJoin(
dbContext.OrderDetails,
v=>v.orderid,
od=>o.orderid,
(v,od)=>new {v=v,od=od});
当然,您可以将适当的导航属性添加到vOrder并完全按照您的说法进行操作。
答案 1 :(得分:0)
为什么不在视图中包含更多列(或创建另一个包含所有必需数据的视图,如果您不想修改第一个视图)?