需要用int数组替换int

时间:2017-06-22 18:17:34

标签: c# linq

从昨天开始,我一直在努力更新以下查询,但没有运气。

在下面的查询中我需要用int idSiteno替换int[] SelectedidSiteno - 你看到用int数组替换int。

我尝试使用.Contains .Any几乎所有内容,但没有办法接近解决方案。你能帮忙吗?

ICollection<Department> dbList = _db.Departments
                                 .Include(l => l.Sites)
                                 .Where(l => l.idCompany == idCompany && l.Disabled == "N" 
                                             && l.Sites.Any(x => x.idSite == idSiteno))
                                 .OrderBy(l => l.SortOrder).ToList();

2 个答案:

答案 0 :(得分:5)

所以包含不起作用?

ICollection<Department> dbList = _db.Departments
.Include(l => l.Sites)
.Where(l => l.idCompany == idCompany && l.Disabled == "N" && l.Sites.Any(x => SelectedidSiteno.Contains(x.idSite)))
.OrderBy(l => l.SortOrder).ToList();

答案 1 :(得分:0)

  

公司ID匹配的部门表格中的所有数据和网站集合的所有 idsite网站的所有数据都匹配所有所选ID在SelectedidSiteno中< / p>

您可以使用All检查每个条目是否与特定表达式匹配。例如,如果某个部门的所有网站都与selected collection匹配。

ICollection<Department> dbList = _db.Departments
    .Include(l => l.Sites)
    .Where(l => l.idCompany == idCompany && 
        l.Disabled == "N" && 
        SelectedidSiteno.All(x => l.Sites.Any(s => s.idSite == x)))
    .OrderBy(l => l.SortOrder).ToList();