我有一个过滤器列表,我想用它查询一个表,其中返回的项包含所有值,而不仅仅是一个。
该表称为“组织”,其中包含组织所针对的AgeGroups列表。
ptrace
OrgAgeGroup类在下面
public class Organisation
{
public int OrganisationID { get; set; }
public string OrgName { get; set; }
public ICollection<OrgAgeGroup> AgeGroupCollection { get; set; }
}
最后,从复选框中选择的值存储在一个int列表中:
public class OrgAgeGroup
{
public int OrgAgeGroupID { get; set; }
public int OrganisationID { get; set; }
public int AgeGroupID { get; set; }
}
我正在使用以下代码选择包含任何selectedAges的所有组织:
List<int> selectedAges
但是我不知道如何获取包含所有选定年龄的所有组织。将“全部更改为全部”似乎对搜索没有影响。有什么想法吗?
答案 0 :(得分:3)
以下查询应为您提供所需的内容。
orglist = orglist.Where(
o => selectedAges.All(
s => o.AgeGroupCollection
.Select(l => l.AgeGroupID)
.Contains(s)));
您想要一个组织o
,其中所有selectedAges
s
都包含在o
的{{1}}的{{1}}的集合中