IQueryable与IEnumberable的区别有哪些
来源:互联网 发布:android 开启移动数据 编辑:程序博客网 时间:2024/05/01 16:26
一、IEnumerable接口
公开枚举器,该枚举器支持在指定类型的集合上进行简单迭代。也就是说:实现了此接口的object,就可以直接使用foreach遍历此object
二、IQueryable 接口
它继承 IEnumerable 接口,而因为.net版本加入Linq和IQueryable后,使得IEnumerable不再那么单调,变得更加强大和丰富。
三、IQueryable与IEnumberable的区别
1、IEnumerable<T> 泛型类在调用自己的SKip 和 Take 等扩展方法之前数据就已经加载在本地内存里了
2、IQueryable<T> 是将Skip ,take 这些方法表达式翻译成T-SQL语句之后再向SQL服务器发送命令,它并不是把所有数据都加载到内存里来才进行条件过滤。
四、IQueryable与IEnumberable的实例说明一
1、IEnumerable实例
var set3 = (from c in db.cms_certificateDetails select c).OrderByDescending(c => c.id).AsEnumerable() .Skip(150).Take(10); foreach (var cmsCertificateDetailse in set3) { Console.WriteLine(cmsCertificateDetailse.czry + ";" + cmsCertificateDetailse.kddh + "\\r\\n");//打印结果}
生成的SQL 语句
SELECT [Extent1].[id] AS [id], [Extent1].[kddh] AS [kddh], [Extent1].[czry] AS [czry], [Extent1].[yjnr] AS [yjnr], [Extent1].[tjTime] AS [tjTime], [Extent1].[bz] AS [bz], [Extent1].[forId] AS [forId]FROM [dbo].[cms_certificateDetails] AS [Extent1]ORDER BY [Extent1].[id] DESC
2、IQueryable实例
var set4 = (from c in db.cms_certificateDetails select c).OrderByDescending(c => c.id).AsQueryable() .Skip(150).Take(10); foreach (var cmsCertificateDetailse in set4) { Console.WriteLine(cmsCertificateDetailse.czry + ";" + cmsCertificateDetailse.kddh + "\\r\\n");//打印结果}
生成的SQL语句
SELECT TOP (10) [Extent1].[id] AS [id], [Extent1].[kddh] AS [kddh], [Extent1].[czry] AS [czry], [Extent1].[yjnr] AS [yjnr], [Extent1].[tjTime] AS [tjTime], [Extent1].[bz] AS [bz], [Extent1].[forId] AS [forId]FROM ( SELECT [Extent1].[id] AS [id], [Extent1].[kddh] AS [kddh], [Extent1].[czry] AS [czry], [Extent1].[yjnr] AS [yjnr], [Extent1].[tjTime] AS [tjTime], [Extent1].[bz] AS [bz], [Extent1].[forId] AS [forId], row_number() OVER (ORDER BY [Extent1].[id] DESC) AS [row_number] FROM [dbo].[cms_certificateDetails] AS [Extent1]) AS [Extent1]WHERE [Extent1].[row_number] > 150ORDER BY [Extent1].[id] DESC
文章转载自: IQueryable与IEnumberable的区别 http://www.studyofnet.com/news/730.html
0 0
- IQueryable与IEnumberable的区别有哪些
- IQueryable与IEnumberable的区别
- IQueryable与IEnumberable的区别
- IQueryable与IEnumberable的区别
- IQueryable与IEnumberable的区别
- IQueryable与IEnumberable的区别
- IQueryable与IEnumberable的区别
- IQueryable与IEnumberable的区别
- IQueryable与IEnumberable的区别
- IEnumberable与IQueryable区别
- Entity Framework--IQueryable与IEnumberable的区别
- Entity Framework:IQueryable与IEnumberable的区别
- IQueryable接口与IEnumberable区别
- Entity Framework快速入门--IQueryable与IEnumberable的区别
- Entity Framework快速入门--IQueryable与IEnumberable的区别
- Entity Framework快速入门--IQueryable与IEnumberable的区别
- Entity Framework快速入门--IQueryable与IEnumberable的区别
- IQueryable & IEnumberable 区别
- Hibernate相关资料
- 复习继承派生
- php接收GET方法传入的中文参数乱码深究
- C++学习 C++资源大全以及代码分析工具
- Jvm terminated. exit code=-1
- IQueryable与IEnumberable的区别有哪些
- 物联12:《Rfid技术与应用》第一部分基础理论学习任务
- 从原理上讲解django里cookie和session的联系与区别
- C#中有关属性的演示
- Oracle-多版本环境变量切换
- poj1837 Balance 天平和砝码
- 04 视图控制器
- AI学习过程(3)-异常检测
- 开发随笔-接口间参数