在使用EF的过程中,我们常常使用repository模式,本文就在repository层的返回值是IEnumerable类型还是IQueryable进行探讨。 阅读目录: 一、什么是Repository模式? 二、IEnumerable还是IQueryable的区别 ...
这是一个很有意思的问题,我们一步一步来探讨,首先需要明确两个概念 来自 MSDN : IQueryable:提供对未指定数据类型的特定数据源的查询进行计算的功能。 IEnumerable:公开枚举数,该枚举数支持在非泛型集合上进行简单迭代。 IQueryable 继承自 IEnumerable,它们俩最大的区别是,IQueryable 是表达式树处理,可以延迟查询,而 IEnumerable 只能 ...
2015-08-25 15:45 124 9394 推荐指数:
在使用EF的过程中,我们常常使用repository模式,本文就在repository层的返回值是IEnumerable类型还是IQueryable进行探讨。 阅读目录: 一、什么是Repository模式? 二、IEnumerable还是IQueryable的区别 ...
在使用EF的过程中,我们常常使用repository模式,本文就在repository层的返回值是IEnumerable类型还是IQueryable进行探讨。 阅读目录: 一、什么是Repository模式? 二、IEnumerable还是IQueryable的区别 三、实际 ...
IEnumerable和IEnumerable 1.IEnumerable查询必须在本地执行.并且执行查询前我们必须把所有的数据加载到本地.而且更多的时候.加载的数据有大量的数据是我们不需要的无效数据.但是我们却不得不传输更多的数据.做更多的无用功。使用IEnumerable,所有 ...
总结: 1. IQueryable, List 继承自 IEnumerator, 就是说这两个都可以进行集合的遍历。 2. IQueryable有三个属性用户存储数据的类型,查询的表达式和和 ...
LINQ查询方法一共提供了两种扩展方法,在System.Linq命名空间下,有两个静态类:Enumerable类,它针对继承了IEnumerable<T>接口的集合进行扩展;Queryable类,针对继承了IQueryable<T>接口的集合进行扩展。我们会发现接口 ...
IEnumerable<T> 泛型类在调用自己的SKip 和 Take 等扩展方法之前数据就已经加载在本地内存里了,而IQueryable<T> 是将Skip ,take 这些方法表达式翻译成T-SQL语句之后再向SQL服务器发送命令。也是延迟在我要真正显示数据的时候才执行 ...
DAL层从数据库中将数据读出来后,传递给BLL层,再通过BLL处理数据后,向WEB层返回,最后到页面上输出,这是一个过程,在这个过程中我需要说两句,BLL层与WEB层通讯肯定是List,IList等等,即实实在在的数据,而DAL层向BLL层返回数据时,就需要注意了,因为DAL层返回一般是完整 ...
LINQ查询方法一共提供了两种扩展方法,在System.Linq命名空间下,有两个静态类:Enumerable类,它针对继承了IEnumerable<T>接口的集合进行扩展;Queryable类,针对继承了IQueryable<T>接口的集合进行扩展。我们会发现接口 ...