我在内存中有一组 ID,我只想从与这些 ID 匹配的数据库中获取行。

在 SQL 中,我可以编写像 SELECT * FROM mytable WHERE id IN (1,3,5,10) 这样的查询,也可以在表之间进行连接。

我的问题是 EF 无法在我将 EF 数据与本地数组或列表连接的情况下构建查询。

(我使用的是 EF4.1,但我猜测问题/解决方案在旧版本以及 Linq-to-SQL 中会类似。)

最佳答案

您可以使用 Contains() 和您的 ID 集合 myIDs 来生成等效的 WHERE id IN .. 查询:

var results = context.mytable.Where(x => myIds.Contains(x.Id));

关于linq - 如何使用 Linq 在对象和实体之间进行连接?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8021463/

10-11 15:16
查看更多