鼎鼎知识库
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

10.IQueryable.md 1.0KB

IQueryable

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