我有两个模型:父母和孩子
public class Parent
{
public int ID { get; set; }
public string Name{ get; set; }
public virtual ICollection Children { get; set; }
}
public class Child
{
public int ID { get; set; }
public int ParentID { get; set; }
public string Name{ get; set; }
public int Age{get; set;}
[ForeignKey("ParentID")]
public virtual Parent Parent { get; set; }
}
字符串
样本数据:
Parent Child
ID Name ID Name Age ParentID
1 a 1 a1 10 1
2 b 2 a2 20 1
3 c 3 a3 25 1
4 d 4 b1 30 2
5 e 5 b2 35 2
6 c1 27 3
7 d1 10 4
8 d2 18 4
9 d3 26 4
10 e1 15 5
型
我想显示一个父母的列表,这些父母有任何超过特定年龄的孩子,这个列表将被加入孩子模型,在孩子子集中,只显示特定年龄的孩子。
期望输出:
parents
ID Name Children.ID Children.Name Age
1 a 3 a3 25
2 b 4 b1 30
3 c 5 b2 35
4 d 6 c1 27
9 d3 26
型
注意:子表位于父字段中。
我测试了这段代码,但它显示了所有孩子的父母:
var parents = context.Parents.Include(p => p.Children).ToList();
// some processes on parents...
parents = parents.Where(p => p.Children.Any(c => c.Age >= 25)).ToList();
型
输出量:
parents
ID Name Children.ID Children.Name Age
1 a 1 a1 10
2 b 2 a2 20
3 c 3 a3 25
4 d 4 b1 30
5 b2 35
6 c1 27
7 d1 10
8 d2 18
9 d3 26
型
如何在Linq查询中过滤子项?
2条答案
按热度按时间wztqucjr1#
您可以过滤相关图元,如过滤的包含中所示。
字符串
更新时间:
作为要求,您需要检索所有
Parent
数据并在一些处理步骤之后进行筛选。您应该删除每个父数据并使用筛选后的Children
数据覆盖Children
值。型
zte4gxcn2#
试试这个:
字符串