zoukankan      html  css  js  c++  java
  • Entity Framework之IQueryable和list本地集合

     

    我们来说一下Iqueryable集合和List等本地集合的区别,下面我们通过建立一个简单的例子来学习这个知识点,直接进入主题吧

    1.首先对比一下两段代码?看一下有什么结果:

      (1) 第一段代码如图所示:

        

      (2)第一段代码使用数据库的Profiler查看执行结果:  

        

      (3)第二段代码如图所示:

        

      (4) 第一段代码使用数据库的Profiler查看执行结果:

        

    2.IQueryable

      (1) IQueryable表达式分为三个项,第一个是查询数据的表达式,第二个是元素类型,第三个是:查询数据Provider,每次我们需要取出集合里面的数据的话,Provider都回去解析查询数据的表达式,解析完之后再去数据库将数据取出来,传递给集合使用

    3.List,Array,IEnumable等本地类型的集合

      (1) 本地类型的存储数据就像是往箱子里面塞东西,你想往里面放就放,然后当我们使用的时候,直接遍历一下拿出来就行了,而IQeurable是你使用数据的时候先让Provider解析查询数据的表达式,,然后去响应的地方去查询数据。而List等已经在本地存放了,你只需要拿出来使用就行了

    4. 本地集合(List和Array等集合)和IQuerable图示信息

      

    5.知识点总结

      (1) 解决查询多次的问题,因IQueryable延迟加载,当用到集合的时候,provider会解析表达式,然后生成查询,所以会走一个复杂的过程。

      (2) 本地集合:List,Array都是本地集合,都是缓存在里面的

      (3) 使用EF管理上下文实例的最佳选择是线程的唯一。

      (4) IEnumable和IQueryable一样都是延迟加载,IEnumable针对的是本地数据,内存中的,IQueryable针对的是远程数据,比如数据库

  • 相关阅读:
    细说WebSocket -- Node.js篇
    跨域CORS原理及调用具体示例
    详解5种跨域方式及其原理
    java后台对json格式数据的解析
    serializeArray()和.serialize()的区别、联系
    JSON.parse(),JSON.stringify(),jQuery.parseJSON()的用法
    Jquery 遍历数组之$().each方法与$.each()方法介绍
    JQuery.Ajax()的data参数类型
    并发,并行,进程,线程,同步,异步
    Java之控制反转和依赖注入
  • 原文地址:https://www.cnblogs.com/xp1056/p/5833348.html
Copyright © 2011-2022 走看看