我正在创建一个可以接收任何Linq查询的通用表单(C#).在这种形式中,我希望能够添加过滤器(WHERE子句).对于像’=’,’’,’Like’等操作符,我可以做像IQueryable.Where(someFieldname“ @ 0”,someCriteria)这样的事...
我正在创建一个可以接收任何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的形式: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”等效
- C#算法之各位相加 2023-05-12
- ASP.NET Core Windows 环境配置 2023-09-26
- c# – 在数据库的控制台窗口中显示数据 2023-11-14
- 利用C#编写扫雷游戏(附源码) 2023-01-11
- C#微信公众号开发之服务器配置 2023-06-15
- c# – 当调用进程退出或被杀死时,如何正常结束线程? 2023-09-19
- Unity3D实现自动寻路 2023-03-04
- C# TcpClient网络编程传输文件的示例 2023-04-14
- 如何在C#中调用COM组件 2023-03-09
- 详解c# 线程同步 2023-03-09