IQueryable和IEnumerable学习
IQueryable和IEnumerable区别
开始了解IQueryable和IEnumerable前,我们先看一下源码
由上面的图片可以得知IQueryable接口继承自IEnumerable接口
由图片可知query返回的IQueryable
由图片可知query返回的IEnumerable
通过在代码中打断点,通过ql server profiler监视工具进行监控,可以得知:
(1)所有对于IEnumerable的过滤,排序等操作,都是在内存中发生的。也就是说数据已经从数据库中获取到了内存中,只是在内存中进行过滤和排序操作。
优点:响应较快;缺点:占内存。
(2)所有对于IQueryable的过滤,排序等操作,只有在数据真正用到的时候才会到数据库中查询。这也是Linq的延迟加载核心所在。
优点:减少带宽 缺点:响应慢
IQueryable的优势是它有表达式树,所有对于IQueryable的过滤,排序等操作,都会先缓存到表达式树中,只有当真正遍历发生的时候,
才会将表达式树由IQueryProvider执行获取数据操作(解析表达式,然后执行取得结果)。
IQueryable和IEnumerable与List的相互转换
List转换为 IQueryable使用 AsQueryable();
List转换为 IEnumerable使用 AsEnumerable();
IQueryable与IEnumerable之间可以相互转换分别使用AsQueryable()、AsEnumerable()
IQueryable和IEnumerable学习相关推荐
- IQueryable 和 IEnumerable
IQueryable 和 IEnumerable 其实,对于上面的即有过虑又有排序的条件查询Linq语句,EF是读取数据库中整个Books表中的数据到内存,还是根据Linq查询语句智能的生成SQL再执 ...
- IQueryable和IEnumerable区别
IQueryable 和IEnumerable总结 1,IEnumerable<T> result = (from t in context.Table order by t.Id se ...
- IQueryable和IEnumerable,IList的区别
IQueryable和IEnumerable都是延时执行(Deferred Execution)的,而IList是即时执行(Eager Execution) IQueryable和IEnumerabl ...
- 对IQueryable和IEnumerable的认识
** IQueryable和IEnumerable的区别 public static IQueryable<TSource> Where<TSource>(this IQuer ...
- C# IQueryable 和 IEnumerable 的区别
这是 EF Core 系列的最后一篇文章,按照上一篇的计划,我们最后就讲一讲 IQueryable 和 IEnumerable 的区别. 点击上方或后方蓝字,阅读 EF Core 系列合集. 在前面的 ...
- 【C#】IQueryable和IEnumerable的区别
IEnumerable接口 公开枚举器,该枚举器支持在指定类型的集合上进行简单迭代.也就是说:实现了此接口的object,就可以直接使用foreach遍历此object: IQueryable 接口 ...
- C#中的IQueryable vs IEnumerable
概要 我们在应用开发中经常用到IQueryable 和 IEnumerable两个接口.如果这两个接口搞混,往往会对程序性能造成很大的影响. 本文以一个实例来区分这两个接口,说明在实际开发过程中,这两 ...
- IQueryable 和 IEnumerable 的区别
在C#中使用 Linq to sql 时,经常搞混 IQueryable 和 IEnumerable 这两种类型,本文简单分析下它们之间的区别和使用场景. 前言 不管是Linq to object,还 ...
- EFCore——IQueryable与IEnumerable的区别(13)
IQueryable与IEnumerable的区别 一.IQueryable与IEnumerable的简单实例 二.IQueryable与IEnumerable的区别 一.IQueryable与IEn ...
最新文章
- 在CentOS上安装TCP协议性能评测工具tcpdive
- C++知识点2——指针、引用基础
- 做了这么久SEO优化,想必你很了解“网页快照”!
- 接口压测初识java GC
- python爬虫从入门到放弃(一)之初识爬虫
- 树莓派的几种登录方式及树莓派的网络配置
- java反射--注解的定义与运用以及权限拦截
- 带有Spring Boot和Spring Cloud的Java微服务
- 考试君 - 基于.NET 5语言的Furion框架开发在线考试系统
- Spring boot - 整合 Redis缓存(上)
- 压缩感知——SP(subspace pursuit)重构算法前言翻译
- 2008服务器操作系统安装,Windows server2008服务器安装图文教程
- 华为一则面试题登上热搜;大众点评会员因点赞过多被处罚;Linux Kernel 5.12 发布|极客头条...
- mysql in 索引_项目中常用到的 19 条 MySQL 优化
- linux监控文件变化的程序,在 Linux 下监控程序修改文件
- [转]DRP系统知识点总结
- 敢问程序员路在何方、路在脚下。
- ENVI学习总结(三)——图像几何校正
- OpenWrt使能mt7620a第二个uart
- 【世界杯赛程表】v1.3 100614 我做的M8软件!