所以我一直在撞击众所周知的墙壁几个小时,我想我会看到其他人是否已经解决了这个问题......
我有一些List
值,我想用作搜索过滤器.在过去,我会WHERE field = 'a' OR field = 'b' OR field = 'C'
在查询中构建一个字符串.但是对于Linq建筑而言,长WHERE
条款相当困难.我希望能起作用的是:
var results = from x in x.table where x.Equals(List) select x;
唉,编译器不够聪明,无法将List <>分解为WHERE field = 'a' OR field ='b'
一种查询.我已经将这个过程作为foreach循环继续前进,List
但当我希望在SQL Server上执行该部分执行时,它正在将处理推送到客户端.我是在这里生活在幻想的土地还是有办法实现这一目标?
你可以使用Contains()
ListyourList = new List { "A", "B", "C" }; var results = from x in x.table where yourList.Contains(x) select x;
如果它是Linq to SQL,它将生成一个WHERE field IN ('A', 'B', 'C')
子句.