`

IEnumerable vs IQueryable

阅读更多

        初学Entity Framework时,根本没有意识到IQueryable。那时从数据库查数据都是先把所有记录取出来,放内存上,再对这些内存上的数据进行筛选。数据少的时候,这种方法也马马虎虎能用。但数据一多,性能问题突显。

        IEnumberable 和 IQueryable的差异。
        来源:IEnumerable VS IQueryable

 


        IEnumberable适用于查询内存中的集合数据。如List,Arrary,Linq to Object,Linq to Xml
        当它用于查询数据库中的数据时,过程如下:

  1. 在服务器端(数据库)执行查询搜索(不带复杂的筛选条件)
  2. 将查到的数据载入到客户端的内存中
  3. 对客户端内存中的数据进行筛选

        因为IEnumerable不支持懒加载

 

 

        IQueryable适用于查询内存外的集合数据。如数据库,Linq to Sql,Service
        当它用于查询数据库中的数据时,会将查询和所有筛选都放在服务端(数据库)完成。

        因为IQueryable支持懒加载。(所以适用于分页的场景)

分享到:
评论

相关推荐

    用于在ASP.NET中轻松分页任何IEnumerable IQueryable的库.zip

    用于在ASP.NET中轻松分页任何IEnumerable IQueryable的库.zip

    EntityFrameworkTests

    疑点一:IEnumerable vs IQueryable 查看详情 使用EF(Core)查询时,IQuerayble是否比使用IEnumerable提供更好的性能? 相关项目: IQueryableVsIEnumerable_Net_Seeder IQueryableVsIEnumerable_NetCore 结论 ...

    SearchExtensions:IQueryable扩展方法库以执行搜索

    SearchExtensions是一个IQueryable和IEnumerable扩展方法库,用于执行搜索。 有关这些软件包及其使用的更多信息,请访问。 该项目代表以下3个nuget软件包的源代码: 一种流利的api,用于跨IEnumerable和...

    C# IQueryable及IEnumerable区别解析

    查询返回的结果有两种类型:IQueryable、IEnumerable,两者内部的处理机制是完全不同的。 清楚认识,这里也是一个数据查询的优化点。 在System.linq命名空间,有两个静态类:Queryable和Enumerable. 在System.linq....

    X.PagedList:用于轻松分页ASP.NETASP.NET Core中的任何IEnumerableIQueryable的库

    PagedList是一个库,使您可以轻松获取IEnumerable / IQueryable,将其切成“页面”,并通过索引获取特定的“页面”。 PagedList.Mvc允许您获取该“页面”并显示具有诸如“上一个”,“下一个”等链接的寻呼机控件。...

    C# Entity Framework中的IQueryable和IQueryProvider详解

    前言  相信大家对Entity Framework一定不陌生,我相信其中Linq To Sql是其最大的亮点之一,但是我们一直使用到现在却不曾明白内部是...public interface IQueryable : IEnumerable {  Type ElementType { get; }  

    C#中IEnumerable、ICollection、IList、List之间的区别

    主要介绍了C#中IEnumerable、ICollection、IList、List之间的区别,本文分别分析了它的实现源码,从而总结出了它们之间的关系和不同之处,需要的朋友可以参考下

    ios-queryable:ios-queryable是IQueryableIEnumerable用于核心数据的实现

    #ios-queryable是一个Objective-C类别,可为Core Data提供IQueryable和类似IEnumerable的功能。 厌倦了编写样板核心数据代码? 没有LINQ就无法生存吗? ios-queryable适合您! 它支持查询组合和延迟执行,并实现...

    完美解决c# distinct不好用的问题

    IQueryable 继承自IEnumerable 先举例: #region linq to object List<People> peopleList = new List(); peopleList.Add(new People { UserName = zzl, Email = 1 }); peopleList.Add(new People { UserName = zzl...

    Linq基础学习资料,通俗易懂

    5.1 IEnumerable 、IEnumerator 10 5.1.1 正常使用 10 5.1.2 C#的 yield 12 5.2 IEnumerable <T> 12 5.3 IEnumerator <T> 12 5.4 ICollection 12 5.5 ICollection <T> 13 5.6 IList 13 5.7 IList <T> 13 ...

    ASP.NET3.5从入门到精通

    目录 第一篇 .NET基础 第 1 章认识 ASP.NET 3.5 1.1 什么是ASP.NET 1.1.1 .NET 历史与展望 1.1.2 ASP.NET 与ASP 1.1.3 ASP.NET 开发工具 1.1.4 ASP.NET 客户端 1.1.5 ASP.NET 3.5 新增控件 1.1.6 ASP.NET 3.5 AJAX ...

    ASP.NET 3.5 开发大全11-15

    目录 第一篇 .NET基础 第1章 认识ASP.NET 3.5 1.1 什么是ASP.NET 1.1.1 .NET历史与展望 1.1.2 ASP.NET与ASP 1.1.3 ASP.NET开发工具 1.1.4 ASP.NET客户端 1.1.5 ASP.NET 3.5新增控件 1.1.6 ASP.NET 3.5 AJAX ...

    ASP.NET 3.5 开发大全

    目录 第一篇 .NET基础 第1章 认识ASP.NET 3.5 1.1 什么是ASP.NET 1.1.1 .NET历史与展望 1.1.2 ASP.NET与ASP 1.1.3 ASP.NET开发工具 1.1.4 ASP.NET客户端 1.1.5 ASP.NET 3.5新增控件 1.1.6 ASP.NET 3.5 AJAX ...

    ASP.NET 3.5 开发大全1-5

    目录 第一篇 .NET基础 第1章 认识ASP.NET 3.5 1.1 什么是ASP.NET 1.1.1 .NET历史与展望 1.1.2 ASP.NET与ASP 1.1.3 ASP.NET开发工具 1.1.4 ASP.NET客户端 1.1.5 ASP.NET 3.5新增控件 1.1.6 ASP.NET 3.5 AJAX ...

    ASPNET35开发大全第一章

    ASPNET35开发大全非常好 书名:ASP.NET 3.5 开发大全 署名:郭靖 页数:722 这是我见过的一本非常好的教程 第一篇 .NET基础 第1章 认识ASP.NET 3.5 1.1 什么是ASP.NET 1.1.1 .NET历史与展望 1.1.2 ASP.NET与ASP ...

    ASP.NET 3.5 开发大全word课件

    这是整部学习资料 由于太大第一章免费供应给大家 在我的上传资源中 如果觉得还不过希望大家给个好评 当然具体本书的作者就不深究了把! 第1章 认识ASP.NET 3.5 1.1 什么是ASP.NET 1.1.1 .NET历史与展望 ...

Global site tag (gtag.js) - Google Analytics