Enumerable 和 Queryable的区别
Enumerable 和 Queryable 他们都是静态类,位于命名控件 System.Linq下,
Enumerable 为 IEnumerable<T> 泛型接口提供扩展。Queryable为IQueryable<T>泛型接口提供扩展和继承了IEnumerable接口也就是他们的子类
IQueryable 在调用时实际上还是采用了Queryable的方法将查询条件转化成SQL语句执行
IQueryable<Student> query1 = db.Student.Where(s => s.Score >= 80);
IEnumerable在调用时我们使用了.AsEnumerable()
IEnumerable<Student> query1 = db.Student.AsEnumerable().Where(s => s.Score >= 80);
但是我们也可以不调用AsEnumerable方法 那实际上调用Queryablel类型where方法
.调用AsEnumerable方法时: 将查询条件视为一个委托,实际调用 Enumerable类中的Where方法
程序实际上是先将 所有学生数据全部取出,在内存中进行过滤。
这两种方式都是延迟执行,遍历元素的时候才会真正的去查询数据库,