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