Iqueryable 作为子查询来筛选另一个 iqueryable

本文关键字:筛选 另一个 iqueryable 查询 Iqueryable | 更新日期: 2023-09-27 17:55:52

我有一个多对多关系(站点,类别,类别XSite)和两个可查询的定义变量,如下所示:

IQueryable<Site> sitesQuery = from s in db.Sites
                         where s.Name.Contains(siteWord)
                         select s

IQueryable<SiteCategorie> categoriesQuery = from c in db.SiteCategories
                                       where c.Parent.ID == 1
                                       select c;

我希望能够将过滤器应用于基于网站可查询的类别 iqueryable,这样我就可以拥有任何带有任何过滤器的类别以及具有包含特定过滤器的网站的类别的另一个过滤器,例如:

from c in categoriesQuery 
where c.Sites == sitesQuery
select c

我之前也提出过类似的问题,当时我也不需要过滤类别(这里)

多谢

Iqueryable 作为子查询来筛选另一个 iqueryable

你可能想要任何一个

from c in categoriesQuery  
where c.Sites.Any(s => sitesQuery.Contains(s))
select c 

from c in categoriesQuery  
where c.Sites.All(s => sitesQuery.Contains(s))
select c 

取决于您的使用案例。