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

      在上一篇博客中我们大致学习了EF框架的增删改查的功能,这篇我们主要来说一下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,IEnumable都是本地集合,都是缓存在里面的

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

      (4) IEnumerable接口是一个公开枚举器,该枚举器支持在指定的集合上进行简单迭代,也就是次接口可以直接使用foreach遍历次Object。具体的分析见上面。

  • 相关阅读:
    021-python基础-python介绍及课程简介
    020-python函数和常用模块-文件操作
    019-python函数和常用模块-内置函数
    018-python基础-三元运算和lambda表达式
    017-python函数和常用模块-函数式编程实现登陆和注册
    016-python函数和常用模块-函数定义和使用
    015-python基础-深浅拷贝
    014-python基础-set集合
    013-python基础-课堂练习
    012-python基础-数据运算
  • 原文地址:https://www.cnblogs.com/hanyinglong/p/2775306.html
Copyright © 2011-2022 走看看