LINQ中in的实现方法-LINQ To Entities如何实现查询 select * from tableA where id in (1,2,3,4)
如果用in是字符串类型无问题,可以直接这样用
var result = SNFService.Instance.ModuleService.GetList(UserInfo).Where(entity => entity.DeletionStateCode ==
).Where(entity => urls.Contains((entity.NavigateUrl == null ? "" : entity.NavigateUrl).ToLower())).OrderBy(entity => entity.SortCode).ToList();
如果是数值类型需要按如下处理:
熟悉LINQ的朋友也许会碰到标题的问题,且很自然地想起使用下面地语句实现:
var list = context.TestTables.Where(a => ids.Contains(a.RID)).ToList();
然而,运行发现系统会抛出如下异常:
LINQ to Entities 不识别方法“Boolean Contains(Int32)”,因此该方法无法转换为存储表达式。
究其原因,是Contains是IList类型的扩展方法而linq无法转换过来。所以上述办法就无法得到我们想要的结果(虽然编译不会有错)。
但可喜的是可以使用string类型的扩展方法Contains;当然这里需要在原表增加计算字段
而获取数据的Linq查询语句就可以这样实现:
var list = context.TestTables.Where(a => ids.Contains(a.IDSearched)).ToList();
上面语句运行时,LINQ To Entities会将其翻译为如下SQL语句:
[Extent1].[RID] AS [RID],
[Extent1].[NAME] AS [NAME],
[Extent1].[ROWDATE] AS [ROWDATE],
[Extent1].[DBSID] AS [DBSID],
[Extent1].[BIRTHDATE] AS [BIRTHDATE],
[Extent1].[NOTE] AS [NOTE]
FROM [dbo].[TestTable] AS [Extent1]
WHERE (CAST(CHARINDEX([Extent1].[NOTE], 'hhh,ggg') AS int)) > 0
LINQ中in的实现方法-LINQ To Entities如何实现查询 select * from tableA where id in (1,2,3,4)的更多相关文章
- Linq中Union与Contact方法用法对比
文章一开始,我们来看看下面这个简单的实例. 代码片段1: int[] ints1 = { 2, 4, 9, 3, 0, 5, 1, 7 }; int[] ints2 = { 1, 3, 6, 4, 4 ...
- 存储过程——在LINQ中使用(六)
上述几篇都将了存储与数据库,关联的一些实例,首先感谢各位大神们在前几篇文章中提到的问题,本人还在学习中,这次介绍下在linq中如何应用存储过程: LINQ简介 语言集成查询(LINQ)在对象领域和数据 ...
- linq中let关键字学习
linq中let关键字就是对子查询的一个别名,let子句用于在查询中添加一个新的局部变量,使其在后面的查询中可见. linq中let关键字实例 1.传统下的子查询与LET关键字的区别 C# 代 ...
- 转载Linq中GroupBy方法的使用总结
Group在SQL经常使用,通常是对一个字段或者多个字段分组,求其总和,均值等. Linq中的Groupby方法也有这种功能.具体实现看代码: 假设有如下的一个数据集: public class St ...
- 让LINQ中的查询语法使用自定义的查询方法
使用LINQ时有两种查询语法:查询语法和方法语法 查询语法:一种类似 SQL 语法的查询方式 方法语法:通过扩展方法和Lambda表达式来创建查询 例如: List<, , , }; //查询语 ...
- Linq中字段数据类型转换问题(Linq to entity,LINQ to Entities 不识别方法"System.String ToString()"问题解决)
1.在工作中碰到这样一个问题: 使用linq时,需要查询两个表,在这两张表中关联字段分别是int,和varchar()也就是string,在linq中对这两个字段进行关联, 如果强制类型转换两个不同类 ...
- C#编程(六十一)------------LINQ中的扩展方法
原文链接: http://blog.csdn.net/shanyongxu/article/details/47208401 LINQ中的扩展方法 LINQ中where扩展方法,要想使用,必须导入us ...
- Linq中string转int的方法
Linq中string转int的方法 在做批量删除时,需把一串id值所对应的数据删除,调试出现问题: Linq语句中如果使用ToString()进行类型转换,编译时不会报错,但执行时会出现如下错误 ...
- 关于Linq中First、FirstOrDefault;Single、SingleOrDefault等方法的说明
关于Linq中First.FirstOrDefault:Single.SingleOrDefault等方法的说明 这里以First.FirstOrDefault进行说明,其他类似. 1.First:取 ...
随机推荐
- 003-Go初探Iris
1.参考资源:https://iris-go.com/v10/start#Getting-Started 2.首先下载:go get -u github.com/kataras/iris,此处时间较长 ...
- h5可伸缩布局方案
https://github.com/amfe/lib-flexible ib.flexible 移动端自适应方案,相关文章请参考此处 Update[2016年01月13日] 首先,由衷的感谢@完颜( ...
- 你如何获取浏览器URL中查询字符串中的参数?
测试地址为:http://www.runoob.com/jquery/misc-trim.html?channelid=12333&name=xiaoming&age=23 实例如下: ...
- jquery vue 框架区别
1.数据和视图分离,解耦 2.以数据驱动视图,只关心数据变化,DOM操作被封装
- 用Power BI解读幸福星球指数
"你幸福吗?"已经成了网络热词,简单的问句背后蕴含着一个普通中国人对于所处时代的政治.经济.自然环境等方方面面的感受和体会.引发当代中国人对幸福的深入思考.实际上,国际上对幸福的讨 ...
- JS或AS中处理ARGB、RGBA颜色值时要小心
(0xffffffff)>>24; //-1 (0xffffffff / 2)>>23; argb颜色需要一个无符号整数uint才能存储,如果首位是F,那么第一个二进制位就是1 ...
- Flash:利用Bitmapdata,ColorTransform,DrawPath,制造绚丽效果
JamesLi的文章:http://www.adobe.com/cn/devnet/actionscript/articles/silkflash-as.html 总结一下绚丽效果的核心: 1.利用一 ...
- Oracle Data Integrator 12c-----场景(Scenario)和调度(Schedule)
1 生成场景 Designer->项目->ODI_Exercise ->第一个文件夹->包->First _Pkg,右键,"生成场景" " ...
- checkbox 多选框 :jquery之全选、全不选、反选
javascriptjqueryselectAll [html] view plaincopy <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1 ...
- 给X240换上了三键触摸板
X240自带的触摸板非常不好用, 对于我这样的指点杆重度用户, 每次要按下整块板真的是太费力了, 而且在夜里声音很吵. 在淘宝上买了三键的X250的触摸板换上了. 这是购买的触摸板的型号 换的时候, ...