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
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 百万级群聊的设计实践
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期