zoukankan      html  css  js  c++  java
  • 对IEnumerable<T>和IQueryable<T>的一点见解

      今天学习了用EF模型做查询,感觉数据库上下文对象的扩展方法很强大,所以研究了一下where的实现原理,其中遇到了一个问题,就是关于IEnumerable和IQueryable的区别,所以查了查资料,这里通俗的和大家说一下

      刚开始看到where方法的返回值是一个IQueryable<T>类型,所以我在自己的MyWhere方法的返回值写的也是这个类型,结果报错。然后换成了IEnumerable<T>,解决问题。

      

    总结:首先要说的是IQueryable继承自IEnumerable接口,它是的IEnumerable更强大。IEnumerable接口是在调用自己的扩展方法之前,就已经将数据加载保存到了本地内存里,然后根据条件,从内存中筛选数据返回。IQueryable接口是将方法翻译成T-SQL语句,然后再向数据库服务器中发出命令,筛选满足条件的数据,返回给我们。

      本人不才,如果有理解偏差的地方,还请各位大牛不吝赐教。

      

  • 相关阅读:
    中断向量表
    内核进程的堆栈 [转]
    int指令理解
    Linux进程创建和结束
    Linux 信号signal处理机制
    wait和waitpid详解
    linux 如何清理僵尸进程
    API:System V & POSI
    shell
    Code POJ
  • 原文地址:https://www.cnblogs.com/inya/p/3961950.html
Copyright © 2011-2022 走看看