我遇到了问题,不知道如何解决。想象一下,你有一个 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/

10-10 03:10