我不知道如何使用Linq和EF执行此查询。
想象一下,我有三张桌子A,B和C.
A和B有多对多的关系。 B和C具有1对多的关系。
我想从B中获取包括C的记录,但是从A的Id中过滤。我可以轻松搞定B的记录:
var result = Context.A.Where(x => x.Id.Equals(aId)).SelectMany(x => x.B);
但是当我尝试包含C时,我不知道该怎么做:
//This doesn't work
var result = Context.A.Where(x => x.Id.Equals(aId)).SelectMany(x => x.B.Include("C"));
我也试过这个没有运气(它等同于上面的内容):
//Not working
var result = (from a in Context.A.Where(x => x.Id.Equals(aId))
from b in a.B.Include("C")
select b);
感谢您的帮助。
答案 0 :(得分:1)
好的,我找到了Any扩展方法......
这是解决方案:
var result = (from b in Context.B.Include("C")
where b.A.Any(x => x.A.Equals(aId))
select b);