- > IQueryable
- - IQueryable只存贮条件,不立即运行
- - LINQ查询方法一共提供了两种扩展方法,在System.Linq命名空间下,有两个静态类:
- - Enumerable类,它针对继承了IEnumerable<T>接口的集合进行扩展;
- - Queryable类,针对继承了IQueryable<T>接口的集合进行扩展
- - 所有对于IEnumerable的过滤,排序等操作,都是在内存中发生的。也就是说数据已经从数据库中获取到了内存中,只是在内存中进行过滤和排序操作。
- - 所有对于IQueryable的过滤,排序等操作,只有在数据真正用到的时候才会到数据库中查询。这也是Linq的延迟加载核心所在。
-
- - where条件接收表达式,返回IQueryable接口
- - IQueryable表达式分为三个项,第一个是查询数据的表达式,第二个是元素类型,第三个是:查询数据Provider,每次我们需要取出集合里面的数据的话,Provider都回去解析查询数据的表达式,解析完之后再去数据库将数据取出来,传递给集合使用
|