作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
”、“Like”等运算符,我可以执行 IQueryable.Wh-6ren">
我正在创建一个可以接收任何 Linq 查询的通用表单 (C#)。在这种形式中,我希望能够添加过滤器(WHERE 子句)。对于“=”、“>”、“Like”等运算符,我可以执行 IQueryable.Where(someFieldname + "> @0", someCriteria)
之类的操作。但是,当我希望能够执行相当于 T-sql“IN”的操作时,我完全迷路了。我已经搜索了几个小时,但找不到实现它的方法。
当考虑它时,一种可能的方式是将 IN 子句的值放在字符串数组或其他一些简单的字符串列表中。然后将此列表与基本查询结合起来。但是当基本查询可以是任何查询时,我如何加入这两个呢?
例子:假设我的基本查询是这样的:
IQueryable<Object> q = from a in db.Adresses
select new { a.Street, a.HouseNr };
在表单中,我希望能够像这样过滤 HouseNr:Where HouseNr IN (1, 3, 5)数字 (1, 3, 5) 在字符串数组(或任何其他字符串列表)中可用。
知道基本查询可以是任何内容,我如何才能做到这一点?
最佳答案
int[] list = new[]{1, 3, 5};
IQueryable<Object> q = from a in db.Adresses
where list.Contains(a.HouseNr)
select new { a.Street, a.HouseNr };
关于c# - 如何使用动态Linq实现等效于tsql "IN",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6832170/
我是一名优秀的程序员,十分优秀!