zoukankan      html  css  js  c++  java
  • C# IEnumberable & IQueryable 区别

    转自 http://blog.csdn.net/daimeisi123/article/details/46976093
    在应用到IEnumberable 和IQueryable两个接口时,代码往往很相似,从而造成了很多困惑,然后事实上他们两是有很大的区别的,各种都有自己特定的使用场景。

    下面是IEnumberable和IQueryable的属性对比:

      IEnumerable  IQueryable
    Namespace System.Collections Namespace System.Linq Namespace
    继承于 No base interface 继承于 IEnumerable
    Deferred Execution 支持 支持
    Lazy Loading 不支持 支持
    如何工作 当从数据库中查询数据,IEnumberable在服务器端执行查询操作,下载数据到客户端的内存中,然后再筛选数据,因此这个操作需要更多的工作而变得缓慢。 当从数据库中查询数据,IQueryable在服务器端根据所有的filter条件执行查询操作,因此该操作需要更少的工作而运行快。
    适用于 LINQ to Object and LINQ to XML queries. LINQ to SQL queries.
    自定义查询 不支持 支持使用CreateQuery 和Execute 方法。
    Extension mehtod
    parameter
    Extension methods supported in IEnumerable takes functional objects. Extension methods supported in IEnumerable takes expression objects i.e. expression tree.
    使用场合 当从内存中的数据集合(如LIst,Array etc)查询数据的时候 当查询非内存中的数据集合(如远程数据库,service等)时。
    最常使用 内存遍历 Paging
  • 相关阅读:
    Reverse Integer
    First Bad Version
    Heaters
    Number of Segments in a String
    RPI学习--环境搭建_串口连接
    关键字const
    main函数参数的使用
    Redis 简单使用 and 连接池(python)
    南宁AI项目
    Go part 1 初探
  • 原文地址:https://www.cnblogs.com/shw0099/p/6251466.html
Copyright © 2011-2022 走看看