Entity Framework第三篇IQueryable和list本地集合
在上一篇博客中我们大致学习了EF框架的增删改查的功能,这篇我们主要来说一下Iqueryable集合和List等本地集合的区别,下面我们通过建立一个简单的例子来学习这个知识点,直接进入主题吧
1.首先对比一下两段代码?看一下有什么结果:
(1) 第一段代码如图所示:
(2)第一段代码使用数据库的Profiler查看执行结果:
(3)第二段代码如图所示:
(4) 第一段代码使用数据库的Profiler查看执行结果:
2.IQueryable
(1) IQueryable表达式分为三个项,第一个是查询数据的表达式,第二个是元素类型,第三个是:查询数据Provider,每次我们需要取出集合里面的数据的话,Provider都回去解析查询数据的表达式,解析完之后再去数据库将数据取出来,传递给集合使用
3.List,Array,IEnumable等本地类型的集合
(1) 本地类型的存储数据就像是往箱子里面塞东西,你想往里面放就放,然后当我们使用的时候,直接遍历一下拿出来就行了,而IQeurable是你使用数据的时候先让Provider解析查询数据的表达式,,然后去响应的地方去查询数据。而List等已经在本地存放了,你只需要拿出来使用就行了
4. 本地集合(List和Array等集合)和IQuerable图示信息
5.知识点总结
(1) 解决查询多次的问题,因IQueryable延迟加载,当用到集合的时候,provider会解析表达式,然后生成查询,所以会走一个复杂的过程。
(2) 本地集合:List,Array,IEnumable都是本地集合,都是缓存在里面的
(3) 使用EF管理上下文实例的最佳选择是线程的唯一。
(4) IEnumerable接口是一个公开枚举器,该枚举器支持在指定的集合上进行简单迭代,也就是次接口可以直接使用foreach遍历次Object。具体的分析见上面。
初心商城:初心商城
作者:韩迎龙(Kencery) MVC/.NET群:159227188如果您认为这篇文章还不错或者有所收获,您可以通过右边的“打赏”功能 打赏一杯咖啡,本页版权归作者和博客园所有,欢迎转载,但未经作者同意必须保留此段声明, 且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构