我遇到了问题,不知道如何解决。想象一下,你有一个 List<int>
大约有 6000 个唯一 ID,它与一个表的 ID 相匹配,该表在 sql 数据表中约有一百万条记录。我想从我的 c# 程序中通过 LINQ 选择与这些 id 匹配的 6000 条记录。我不想使用 Contains()
因为它在翻译中变得非常慢并且参数列表变得很大。
任何其他想法如何解决这个问题?
关于我的场景(这不是真实的,而是类似的场景):
我有一个连接到数据库的服务。一个客户请求一批物品,例如一个人。服务接受请求,查询数据库并将数据发送回客户端。
Person = (PersonID , Prename, Lastname)
现在客户持有一个临时人员名单。通过另一种方法,我想从服务中检索这些人的地址。因此,我将一个 PersonID 列表放入服务中,该服务应该给我一个包含对这些人的引用的地址列表。
最佳答案
如果您使用的是 Entity Framework (EF),则可以在数据 (data) 和表 (Customers) 之间使用内部联接
void Main()
{
var data = Enumerable.Range(1, 6000);
var result = from x in data
join y in Customers
on x equals y.CustomerID
select x;
result.Dump();
}
关于c# - LINQ - 通过 WHERE 子句查询大约 6000 条唯一记录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8730879/