公司网站建设精品,最新网页游戏传奇,地推推广方案,百度收录官网1. IEnumerableT IEnumerableT #xff1a;对于在内存中集合上运行的方法#xff0c;返回的可枚举对象将捕获传递到方法的参数。在枚举该对象时#xff0c;将使用查询运算符的逻辑#xff0c;并返回查询结果。 IEnumerableT在.Net2.0引入。 IEnumb…1. IEnumerableT IEnumerableT 对于在内存中集合上运行的方法返回的可枚举对象将捕获传递到方法的参数。在枚举该对象时将使用查询运算符的逻辑并返回查询结果。 IEnumerableT在.Net2.0引入。 IEnumberable使用的是LINQ to Object方式将AsEnumerable()时对应的所有记录先加载到内存再在此基础上再执行后面的Query。 本地数据源用IEnumerableT并且查询的逻辑可以直接用你所定义的方法的逻辑。 using (PortalContext context new PortalContext())
{// 延迟执行IEnumerableCategory expr (from c in context.Categoriesselect c).AsEnumerable().Take(5);foreach (var item in expr){Console.WriteLine(item.CategoryName);}
} 执行的SQL语句 SELECT [Extent1].[CategoryID] AS [CategoryID], [Extent1].[CategoryName] AS [CategoryName]FROM [dbo].[Category] AS [Extent1] IEnumerableT是延时执行(Deferred Execution)。 2. IQueryableT IQueryable T 不会实现任何查询行为但会生成一个表示要执行的查询的表达式树。查询处理由源 IQueryableT 对象处理。 IQueryable T在.Net支持Linq引入。 远程数据源用IQueryableT无法直接使用你所定义的方法的逻辑必须先生成表达式树查询由源对象处理。 using (PortalContext context new PortalContext())
{// 延迟执行IQueryableCategory expr (from c in context.Categoriesselect c).Take(5);foreach (var item in expr){Console.WriteLine(item.CategoryName);}
} 执行的SQL语句 SELECT TOP (5) [c].[CategoryID] AS [CategoryID], [c].[CategoryName] AS [CategoryName]FROM [dbo].[Category] AS [c] 以上实例中IQueryableT查询使用了LINQ to Sql的处理方式在远处数据库中查询数据。 IQueryableT是延时执行(Deferred Execution)。 3. IListT IList是即时执行(Eager Execution) using (PortalContext context new PortalContext())
{// 即时执行IListCategory expr (from c in context.Categoriesselect c).Take(5).ToList();
} 执行的SQL语句 SELECT TOP (5) [c].[CategoryID] AS [CategoryID], [c].[CategoryName] AS [CategoryName]FROM [dbo].[Category] AS [c]