使用实体框架代码首先我有客户的DbSet,每个客户都有一个客户编号:ID为实体框架查询项目自IEnumerable
public class Customer
{
public int CutomerId {get; set;}
...
}
public class MyDbContext : DbContext
{
public DbSet<Customer> Customers {get; set;
}
所有相当标准。
不知何故,我选择了一系列customerIds作为IEnumerable。我想用这个customerId来查询所有客户,以便与选定的客户进行一些沉重的LINQ工作。所以,我需要这样的东西:
IEnumerable<int> customerIdsToProcess = ...
using (var myContext = new MyDbContext())
{
IQueryable<Customer> selectedCustomers = myContext.Customers
.Where(customer => customerIdsToProcess.Contains(customer.customerId);
然而,使用在SQL语句中,如果集合很大,不能使用Enumerable.Contains结果。
那么如果你有一个ID集合并且你想得到一个带有该ID的元素的IQueryable,该怎么办?
加法:想过之后,这个问题有点假设。通常情况下,本地没有数千个ID,除非它们是查询的结果,因此可用IQueryable表示。所以,尽管知道如何做到这一点很好,但如果我真的需要它,我想我会做错事。
如何分割你的列表,根据列表获取查询,然后结合查询? –