当前位置: 首页 > news >正文

MVC中一般为什么用IQueryable而不是用IList

IList(IList<T>)会立即在内存里创建持久数据,这就没有实现“延期执行(deferred execution)”,如果被加载的实体有关联实体(associations),此关联实体不会被加载(既不立即加载,也不延迟加载)。

IQeurable(IQuerable<T>)不会立即在内存里创建持久数据,只有遍历它(如通过foreach)、把它转换成List等情况下才会向内存加载数据,它可以实现“延期执行”,如果当前被加载的实体有关联实体(associations),此关联实体可被接下来的访问加载。

看下面一段代码:
//IList的情况
IList users = res.ToList(); //此时已把users加载到内存,而每个user的关联实体(UserInfos)未
//被加载,所以下一行代码无法顺利通过
var ss = users.Where(p => p.UserInfos.ID != 3); //此处报错,因为P的UserInfos实体无法被加载

// IQuerable的情况
IQueryable users = res.AsQueryable(); //users未被立即加载,关联实体可通过“延迟加载”获
//得
var ss = users.Where(p => p.UserInfos.ID != 3);//此处顺利获得对应的ss

转载于:https://www.cnblogs.com/herizai/p/6992152.html

相关文章:

  • win7 Pthreads
  • Java -- Java 类集 -- 目录
  • Linux IPC实践(4) --System V消息队列(1)
  • CSS的子选择器与后代选择器的区别
  • salt Rosters
  • 14_通过sharedPreferences保存用户名密码
  • codeforces 814D (DFS)
  • [转]eclipse 配置黑色主题 Luna 方式三
  • bootstrap validate remote 自定义message返回
  • e课表项目第二次冲刺周期第十天
  • http 又想起了苑
  • 使用JPA和Hibernate进行批量处理的最佳方式
  • Linux系统下GDB调试
  • 【安卓9】SimpleCursorAdapter、在列表中展示数据
  • 查看windows进程,并删除
  • 《Java编程思想》读书笔记-对象导论
  • dva中组件的懒加载
  • hadoop集群管理系统搭建规划说明
  • Spring Cloud中负载均衡器概览
  • SpringCloud(第 039 篇)链接Mysql数据库,通过JpaRepository编写数据库访问
  • vue.js框架原理浅析
  • 动态魔术使用DBMS_SQL
  • 对JS继承的一点思考
  • 对话 CTO〡听神策数据 CTO 曹犟描绘数据分析行业的无限可能
  • 给自己的博客网站加上酷炫的初音未来音乐游戏?
  • 关于for循环的简单归纳
  • 记一次删除Git记录中的大文件的过程
  • 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
  • 我与Jetbrains的这些年
  • FaaS 的简单实践
  • linux 淘宝开源监控工具tsar
  • ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLTr
  • #快捷键# 大学四年我常用的软件快捷键大全,教你成为电脑高手!!
  • (JSP)EL——优化登录界面,获取对象,获取数据
  • (附源码)计算机毕业设计SSM基于健身房管理系统
  • (论文阅读笔记)Network planning with deep reinforcement learning
  • (三)elasticsearch 源码之启动流程分析
  • (四)docker:为mysql和java jar运行环境创建同一网络,容器互联
  • (算法二)滑动窗口
  • *ST京蓝入股力合节能 着力绿色智慧城市服务
  • .NET Framework Client Profile - a Subset of the .NET Framework Redistribution
  • .NET 自定义中间件 判断是否存在 AllowAnonymousAttribute 特性 来判断是否需要身份验证
  • .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例
  • .net的socket示例
  • .php结尾的域名,【php】php正则截取url中域名后的内容
  • [20160902]rm -rf的惨案.txt
  • [Android]使用Git将项目提交到GitHub
  • [AutoSar NVM] 存储架构
  • [AutoSar]BSW_Memory_Stack_004 创建一个简单NV block并调试
  • [BROADCASTING]tensor的扩散机制
  • [C# 基础知识系列]专题十六:Linq介绍
  • [C#]OpenCvSharp使用帧差法或者三帧差法检测移动物体
  • [C++][基础]1_变量、常量和基本类型
  • [ffmpeg] av_opt_set 解析
  • [hihocoder1395] 最大权闭合子图