过滤强烈输入结果

时间:2016-08-25 16:35:40

标签: 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,这不是我的需要。 注意:此场景和代码只是用于学习目的的示例

1 个答案:

答案 0 :(得分:3)

由于您需要父类实体的过滤列表,因此您需要使用Where而不是Select。这应该是你想要的:

var res = db.Ps.Where(a => a.CS.Name == "Peter").ToList();

或者如果你有1-many

var res = db.Ps.Where(a => a.CS.Any(b => b.Name == "Peter")).ToList();

哪个res是您的Ps班级的列表。