使用LINQ从多个表中获取数据

时间:2016-03-31 14:26:19

标签: entity-framework linq join

我有3个表,A,B和C.关系如下:

OTO B和B OTM C。

我想通过使用B +"来过滤C表中某些列的结果。" (B.Blob.IsDeleted == 0)但我收到以下错误消息

  

" Include路径表达式必须引用导航属性   在类型上定义。使用虚线路径进行参考导航   属性和集合导航的Select运算符   属性"

是否可以使用这种方法或我必须使用"加入"关键病房从多个表执行查询?

感谢。

1 个答案:

答案 0 :(得分:0)

Include函数只告诉EF 预取 Include d个实体,这与执行将来自多个相关表的数据连接在一起的查询不同

以下代码:

myContext.TableA.Include("B").First();

这告诉实体框架还加载导航属性" B"所指向的实体。这与执行Join()查询并不完全相同,尽管它可能有非常相似的事实。

如果您的要求是使用某些条件获取实体A,然后通过A-> B和B-> C的导航属性获取与A相关的所有实体,那么应该适合你。

如果你想做一些更复杂的事情,比如加入不同的属性(字段),根据B或C的属性查询A;那么Include功能对你不起作用。