我有3个表,A,B和C.关系如下:
OTO B和B OTM C。
我想通过使用B +"来过滤C表中某些列的结果。" (B.Blob.IsDeleted == 0)但我收到以下错误消息
" Include路径表达式必须引用导航属性 在类型上定义。使用虚线路径进行参考导航 属性和集合导航的Select运算符 属性"
是否可以使用这种方法或我必须使用"加入"关键病房从多个表执行查询?
感谢。
答案 0 :(得分:0)
Include
函数只告诉EF 预取 Include
d个实体,这与执行将来自多个相关表的数据连接在一起的查询不同
以下代码:
myContext.TableA.Include("B").First();
这告诉实体框架还加载导航属性" B"所指向的实体。这与执行Join()
查询并不完全相同,尽管它可能有非常相似的事实。
如果您的要求是使用某些条件获取实体A
,然后通过A-> B和B-> C的导航属性获取与A相关的所有实体,那么应该适合你。
如果你想做一些更复杂的事情,比如加入不同的属性(字段),根据B或C的属性查询A;那么Include
功能对你不起作用。