我尝试根据多层子导航属性查询带有“ where子句”的表。
我有:
所以我尝试:
var query = context.TableA.where(a => a.TableB_navProperties.where(b => b.TbableC_navProperties.where(c => c.prop=="testCondition")));
但是此查询不正确:visual studio说:
“不可能将system.collection.generic.IEnumerable
如何查询带有子级导航属性的子项的表?
谢谢
答案 0 :(得分:0)
我找到了解决方案。对于属于集合的导航属性,请使用Any()而不是where():
var query = context.TableA.where(a => a.TableB_navProperties.Any(b => b.TbableC_navProperties.Any(c => c.prop=="testCondition")));
此解决方案有效,但是生成的sql使用大量的“ Exist子查询”,因此我认为效率不是很高。