我正在创建一个可以接收任何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# 解决datagridview控件显示大量数据拖拉卡顿问题 2023-03-28
- c# – 使用WebKit在Windows上模拟iOS和Android内置浏览器 2023-09-18
- C#中Json反序列化的实现方法 2022-12-26
- 详解使用C#编写SqlHelper类 2022-11-15
- C#串口接收程序的实现 2023-06-05
- C#Windows窗体控制到图像? 2023-09-19
- C#连接Oracle数据库使用Oracle.ManagedDataAccess.dll 2022-11-19
- C# 基础入门--注释 2022-11-02
- C#如何更改Word的语言设置 2022-12-11
- Winform开发框架中如何使用DevExpress的内置图标资源 2023-01-06