标签: c# entity-framework linq
我有一组父实体,每个父实体 P 包含子实体 C 。
我想要一个过滤的强类型集合/所有父级实体的列表,其中任何孩子的名字都是' peter'
请注意我在结果中需要强烈的类型列表。
List<P> parents = (List<P>)db.Ps.Select(a => a.Cs.Any(b => b.Name == "Peter")).ToList();
此代码返回IEnumerable,这不是我的需要。 注意:此场景和代码只是用于学习目的的示例
IEnumerable
答案 0 :(得分:3)
由于您需要父类实体的过滤列表,因此您需要使用Where而不是Select。这应该是你想要的:
Where
Select
var res = db.Ps.Where(a => a.CS.Name == "Peter").ToList();
或者如果你有1-many:
1-many
var res = db.Ps.Where(a => a.CS.Any(b => b.Name == "Peter")).ToList();
哪个res是您的Ps班级的列表。
res
Ps