带lambda表达式的Linq:如何从sql中执行IN语句
本文关键字:sql 执行 语句 IN 表达式 lambda Linq | 更新日期: 2023-09-27 18:17:51
在SQL中我可以使用IN
运算符:
select * from project where id IN (select f.id_project from funds)
如何将此语句转换为LINQ?
Controller.Project.Where(p => p.id == id_funds); // I can assign only one id funds
使用Contains
方法:
Controller.Project.Where(p => id_funds.Contains(p.id));
不要认为它适用于你的问题,因为它似乎id_funds
链接到一个数据库表,但…
请注意,如果id_funds是一个对象(即一个简单的数组或列表等),而不是数据库中的东西,你不使用Linq-To-Objects,你可能会遇到这个问题,因为我不认为Linq-To-Objects在v 4.0之前支持它(见这里的一个解决方案),而Linq-To-SQL有问题,如果id_funds
是一个非常大的列表(超过2000项)。