关于子导航属性的 Where 子句
Where clause on childs navigation properties
我尝试根据多级子导航属性查询 table 和 "where clause"。
我有:
- table 导航属性为:
- Table B 的导航属性为:
- Table C
所以我试试 :
var query = context.TableA.where(a => a.TableB_navProperties.where(b => b.TbableC_navProperties.where(c => c.prop=="testCondition")));
但是这个查询不正确:visual studio 说:
"impossible to convert system.collection.generic.IEnumerable< TableC > to bool"
我如何查询 table 有条件的子项导航属性?
谢谢
我找到了解决办法。对于集合的导航属性,使用 Any() 而不是 where () :
var query = context.TableA.where(a => a.TableB_navProperties.Any(b => b.TbableC_navProperties.Any(c => c.prop=="testCondition")));
此解决方案有效,但生成的 sql 使用了很多“存在子查询”,所以我认为它不是很有效。
我尝试根据多级子导航属性查询 table 和 "where clause"。
我有:
- table 导航属性为:
- Table B 的导航属性为:
- Table C
- Table B 的导航属性为:
所以我试试 :
var query = context.TableA.where(a => a.TableB_navProperties.where(b => b.TbableC_navProperties.where(c => c.prop=="testCondition")));
但是这个查询不正确:visual studio 说: "impossible to convert system.collection.generic.IEnumerable< TableC > to bool"
我如何查询 table 有条件的子项导航属性?
谢谢
我找到了解决办法。对于集合的导航属性,使用 Any() 而不是 where () :
var query = context.TableA.where(a => a.TableB_navProperties.Any(b => b.TbableC_navProperties.Any(c => c.prop=="testCondition")));
此解决方案有效,但生成的 sql 使用了很多“存在子查询”,所以我认为它不是很有效。