Linq to entities 如何高效地编写此linq查询?

Linq to entities 如何高效地编写此linq查询?,linq-to-entities,Linq To Entities,有n家公司 有100万名员工 一名员工可以在多家公司工作 我给你一份公司名单{c1,c2,…}给我所有在这家公司工作的员工,他们的名字是鲍勃 context.EmployeeSet.Where(e => e.Companies.Intersect(_companiesParam)!=null).Where(emp=>emp.Name=="Bob").ToList(); 搜索所有名为Bob的员工的速度会非常慢,因为每个公司的平均员工人数都不到10人,所以我首先按公司提交文件 我关心的

有n家公司 有100万名员工 一名员工可以在多家公司工作

我给你一份公司名单{c1,c2,…}给我所有在这家公司工作的员工,他们的名字是鲍勃

context.EmployeeSet.Where(e => e.Companies.Intersect(_companiesParam)!=null).Where(emp=>emp.Name=="Bob").ToList();
搜索所有名为Bob的员工的速度会非常慢,因为每个公司的平均员工人数都不到10人,所以我首先按公司提交文件


我关心的是如何更有效地编写.Where(e=>e.companys.Intersect(_companyesparam)!=null)。是否可以避免使用intersect运算符?

如果要避免使用intersect,可以使用Any和Contains编写

context.EmployeeSet.Where(e => e.Companies.Any(c => _companiesParam.Contains(c)) && e.Name == "Bob").ToList();