• 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。具体的分析见上面。

  • 相关阅读:
    谈谈一些有趣的CSS题目(十二)-- 你该知道的字体 font-family
    谈谈一些有趣的CSS题目(十一)-- reset.css 知多少?
    【Web动画】SVG 实现复杂线条动画
    【Web动画】SVG 线条动画入门
    引人瞩目的 CSS 变量(CSS Variable)
    谈谈一些有趣的CSS题目(十)-- 结构性伪类选择器
    ROW_NUMBER() OVER函数的基本用法
    PL SQL笔记(三)
    pushState、replaceState、onpopstate 实现Ajax页面的前进后退刷新
    无聊的人用JS实现了一个简单的打地鼠游戏
  • 原文地址:https://www.cnblogs.com/hanyinglong/p/2775306.html
Copyright © 2020-2023  润新知