当前位置:  开发笔记 > 编程语言 > 正文

如何使用List <>作为Linq的where子句的条件?

如何解决《如何使用List<>作为Linq的where子句的条件?》经验,为你挑选了1个好方法。

所以我一直在撞击众所周知的墙壁几个小时,我想我会看到其他人是否已经解决了这个问题......

我有一些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上执行该部分执行时,它正在将处理推送到客户端.我是在这里生活在幻想的土地还是有办法实现这一目标?



1> CMS..:

你可以使用Contains()

List yourList = 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')子句.

推荐阅读
mobiledu2402852357
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有