博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
EntityFramework IEnumerable,IQueryable ,Include
阅读量:7082 次
发布时间:2019-06-28

本文共 1721 字,大约阅读时间需要 5 分钟。

 使用IQueryable

using (var db = new CentaStaffEntities())            {                IQueryable
queryablestaffs = db.Staff.AsQueryable().OrderBy(p=>p.StaffID).Skip(3).Take(3); foreach (var item in queryablestaffs) { Console.WriteLine(item.CnName); } }

 

 

使用IEnumerable

using (var db = new CentaStaffEntities())            {                  IEnumerable
enumerablestaffs = db.Staff.AsEnumerable().OrderBy(p => p.StaffID).Skip(3).Take(3); foreach (var item in enumerablestaffs) { Console.WriteLine(item.CnName); } }

 

IQueryable接口与IEnumberable接口的区别:  IEnumerable<T> 泛型类在调用自己的SKip 和 Take 等扩展方法之前数据就已经加载在本地内存里了,而IQueryable<T> 是将Skip ,take 这些方法表达式翻译成T-SQL语句之后再向SQL服务器发送命令,它并不是把所有数据都加载到内存里来才进行条件过滤。

参考:http://www.cnblogs.com/ambon/articles/4766924.html

 

Include(),两表必须含有外键关系,只需要指定键名对应的类属性名即可,不需指定结果字段(即全部映射)。默认搜索某表时,不会顺带查询外键表,直到真正使用时才会再读取数据库查询;若是使用 Include(),则会在读取本表时把指定的外键表信息也读出来。

using (var db = new TestEntities())            {                IEnumerable
enumerablestaffs = db.Student; foreach (var item in enumerablestaffs) { //每次都会获取 Console.WriteLine(item.Class.Name); } }

 

 

Include

using (var db = new TestEntities())            {                //预加载关联表  前提必须有主外键关系                IEnumerable
enumerablestaffs = db.Student.Include("Class"); //只查询一次 foreach (var item in enumerablestaffs) { Console.WriteLine(item.Class.Name); } }

Left join

 

转载于:https://www.cnblogs.com/woxpp/p/entityframeworkinclude.html

你可能感兴趣的文章
Java&Spring系列笔记
查看>>
简单理解Ajax原理
查看>>
iOS少用的框架
查看>>
cdn
查看>>
TypeScript基础入门之JSX(二)
查看>>
C4D操作 延迟 ,卡顿罕见状况解决方案。
查看>>
面向对象二次整理(基础,属性引用,方法引用.绑定方法)
查看>>
[C++参考]私有成员变量的理解
查看>>
学习该有的思维方式
查看>>
Linux:查看磁盘空间占用情况
查看>>
redis发布订阅
查看>>
dubbo+zookeeper
查看>>
3D打印材料的发展现状(1)
查看>>
GPGPU之应用于Mapped Reduced
查看>>
html dom的nodetype值介绍,HTML DOM nodeType用法及代码示例
查看>>
html怎么对多个td应用样式,html – 如何将样式类应用于td类?
查看>>
Proxmox集群ceph报“ceph 1pg inconsistent”错误解决备忘
查看>>
多级菜单系统安装维护shell脚本实现企业级案例
查看>>
那些年,我玩过的操作系统
查看>>
Lync Server 2013标准版升级Skype for Business Server 2015实战(上)
查看>>