LINQ : IEnumerable<T> and IQueryable<T>区别

简介: 本地数据源计算机会自动使用IEnumberable,远程数据源会使用IQueryable 下面这条语句没有使用数据库里的EF数据,显示如下: 下面这条语句使用数据库里的EF数据,显示如下: 针对Linq  “LINQ TO to OBJECTS”,使用Enumerable中的扩展方法对本地集合进行排序、查询等操作,查询参数接受的是Func< >。

本地数据源计算机会自动使用IEnumberable<T>,远程数据源会使用IQueryable<T>

下面这条语句没有使用数据库里的EF数据,显示如下:

下面这条语句使用数据库里的EF数据,显示如下:

针对Linq  “LINQ TO to OBJECTS”,使用Enumerable中的扩展方法对本地集合进行排序、查询等操作,查询参数接受的是Func< >。Func< >叫做谓语表达式,相当于一个委托。

针对Linq  “LINQ TO to SQL”则使用Querable中的扩展方法,它接受的参数是Expression< >。Expression< >用于包装Func< >。Linq  LINQ TO to SQL引擎最终会将表达式树转化成为相应的SQL语句,然后在数据库中执行。

学习交流群:364976091
相关文章
|
SQL .NET 数据库
IEnumerable和IQueryable在使用时的区别
最近在调研数据库查询时因使用IEnumerable进行Linq to entity的操作,造成数据库访问缓慢。此文讲述的便是IEnumerable和IQueryable的区别。 微软对IEnumerable的定义使用场景为Linq to Object,也就是涉及到内存操作时使用。
1316 0