我正在创建一个可以接收任何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#中Lambda表达式的三种写法 2023-06-04
- net core quartz调度 warp打包 nssm部署到windowsservice 2023-09-26
- 快速了解如何在.NETCORE中使用Generic-Host建立主机 2023-02-16
- c#生成自定义图片方法代码实例 2022-12-31
- C#集合之链表的用法 2023-05-30
- c# – 使用Nancy的Windows服务无法启动主机 2023-09-19
- DotNET Core中间件定义 2023-09-28
- C# Email邮件发送功能 找回或重置密码功能 2023-01-11
- C# 中如何取绝对值函数 2022-11-08
- C#9.0推出的4个新特性介绍 2023-05-21