IEnumerable 和 IQueryable

IEnumerable 是内存的操作,在内存里执行Linq操作(客户端评估)。

IQueryable 是分析预生成SQL语句,最后在数据库里执行(服务器端评估)。

IQueryable 遇到终结操作:遍历(真正需要取数据操作时),ToList,ToArray,Count,Max,Min等操作时,就会立即执行,将数据查询到内存里。

             非终结操作: GroupBy,OrderBy。

可以通过这些方法的返回对象是 IEnumerable 还是 IQueryable  来确定SQL语句是否执行。

Part3-23:EF Core有了IEnumerable还要IQueryable干什么_哔哩哔哩_bilibili

 

EF执行SQL语句查询时,如果是 IQueryable 这种结果的查询,底层用的是DataReader读取,不是把数据全读取到内存,这样会耗费数据库链接,减少内存占用

如果遇到终结操作则会直接全查到内存里。

Part3-28:IQueryable是一次性把数据都加载到内存吗_哔哩哔哩_bilibili

 

posted @   百年俊少  阅读(278)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 百万级群聊的设计实践
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
点击右上角即可分享
微信分享提示