离上一篇博客,快一周,工作太忙,只能利用休息日来写一些跟大家分享,Entity Framework Plus 组件系列文章,之前已经写过两篇

第一篇 Entity Framework Plus 之 Audit

第二篇 Entity Framework Plus 之 Query Future

计划还会写两篇,一篇是关于查询缓存的(二级缓存),一篇是批量操作(只讲更新,删除)。

今天写查询缓存,标题 第三篇 Entity Framework Plus 之 Query Cache  ,废话不多说,直接实作。

一. 代码实现

1.  解决方案还是前两篇的用的 “EntityFrameworkPlusSolution” 解决方案,在“01.Demo” 解决方案文件夹,新增“EntityFrameworkPlus.QueryCache.Demo” Windows 项目(为什么要用Windows 项目,方便Demo和测试而已。)

2. “EntityFrameworkPlus.QueryCache.Demo” 项目中,删除原来Form1 窗口相关文件,分别新增“QueryCache” 后,“NoExpirationQueryCache”,“AbsoluteExpirationQueryCache”,“SlidingExpirationQueryCache” 窗口,界面设计分别如下图。

QueryCache

NoExpirationQueryCache

AbsoluteExpirationQueryCache

SlidingExpirationQueryCache

四个界面很简单,这里大概介绍一下,

QueryCache 就像操作台一样,是其他三个界面入口点。

NoExpirationQueryCache 不做缓存过期时间设置查询缓存

AbsoluteExpirationQueryCache 指定缓存过期时间(以秒为单位) 设置查询缓存

SlidingExpirationQueryCache 最后一次访问缓存时间间隔(以秒为单位) 设置查询缓存

3. 代码

QueryCache

View Code

NoExpirationQueryCache

View Code

AbsoluteExpirationQueryCache

View Code

SlidingExpirationQueryCache

View Code

代码就不做解释,等一下逐个测试一下给大家看,查询的信息是上一篇第二篇 Entity Framework Plus 之 Query Future商品信息(Sample_Goods),查询后会直接展示到DataGridView里面。

二.测试效果(记得打开SQL Profiler 追踪SQL)

NoExpirationQueryCache  不做缓存过期时间设置查询缓存

1. 点击查询按钮一次,Demo如下图

2. 清空一下Sql Profiler 执行的SQL(这个应该不用我教大家都会),接着连续点击查询按钮,Demo如图

DataGridView 依旧会有数据展示出来,但是SQL Profiler 是没有执行查询商品信息的SQL,说明之后查询是取缓存中的,如果缓存中存在,就不去执行SQL.

AbsoluteExpirationQueryCache 指定缓存过期时间(以秒为单位) 设置查询缓存 (每次Demo另外一个场景,把程序关闭一次,避免Demo不会有问题。)

1. 设置缓存过期时间为10秒,点一次查询,Demo如下图

2. 清空一下Sql Profiler 执行的SQL,然后在10范围内,连续点查询,Demo如下图

3. 过了10秒在点查询按钮,Demo 如下图

从上面三种操作,说明10秒内,点击查询,商品信息,已经被缓存,就不会和数据库进行交流,当过了10秒商品信息的缓存就会自动清除,重新到数据库取数据。

SlidingExpirationQueryCache 最后一次访问缓存时间间隔(以秒为单位) 设置查询缓存

1. 最后访问缓存时间间隔设置10s ,点击查询,Demo如下图

2. 清空一下Sql Profiler 执行的SQL,连续点击查询按钮,只要最后一次访问缓存不超过10s,Demo如下图

3. 最后一次访问缓存时间间隔晚于10s ,Demo如下图

从上面三种操作来看,只要最后一次访问缓存不超过设置时间间隔,即就不会和数据库打交道,总是会取缓存数据,否则不然。

到此 Entity Framework Plus 之 Query Cache 就写完,大家可以更加深入的了解 Entity Framework Plus Query Cache 可以自行看源码

Entity Framework Plus GitHub :https://github.com/zzzprojects/EntityFramework-Plus

本博文源代码 :https://github.com/haibozhou1011/EntityFramework-PlusSample

原文地址:http://www.cnblogs.com/davidzhou/p/5384441.html


.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注

第三篇 Entity Framework Plus 之 Query Cache相关推荐

  1. 第二篇 Entity Framework Plus 之 Query Future

    从性能的角度出发,能够减少 增,删,改,查,跟数据库打交道次数,肯定是对性能会有所提升的(这里单纯是数据库部分). 今天主要怎样减少Entity Framework查询跟数据库打交道的次数,来提高查询 ...

  2. 第四篇 Entity Framework Plus 之 Batch Operations

    用 Entity Framework  进行 增,删,改.都是基于Model进行的,且Model都是有状态追踪的.这样Entity Framework才能正常增,删,改. 有时候,要根据某个字段,批量 ...

  3. 第一篇 Entity Framework Plus 之 Audit

    一般系统会有登陆日志,操作日志,异常日志,已经满足大部分的需求了.但是有时候,还是需要Audit 审计日志,审计日志,主要针对数据增,改,删操作数据变化的记录,主要是对数据变化的一个追踪过程.其中主要 ...

  4. MVC新手教程三:Entity Framework 4.0 来实现MVC的增删改查功能,10分钟搞定

    在这一节,我们使用VS2010自带的EF4.0来实现MVC的增删查改功能,为什么用EF呢?因为如果你自己手写sqlhelper之类,或者是用动软,和我们用EF的速度比,太慢太慢··· 当然,新手还是用 ...

  5. C#综合揭秘——Entity Framework 并发处理详解

    引言 在软件开发过程中,并发控制是确保及时纠正由并发操作导致的错误的一种机制.从 ADO.NET 到 LINQ to SQL 再到如今的 ADO.NET Entity Framework,.NET 都 ...

  6. Entity Framework 基础

    一.什么是Entity Framework 微软官方提供的ORM工具,ORM让开发人员节省数据库访问的代码时间,将更多的时间放到业务逻辑层代码上.EF提供变更跟踪.唯一性约束.惰性加载.查询事物等.开 ...

  7. C#:实体框架EF(entity framework)

    本文来自:http://www.cnblogs.com/xuf22/articles/5513283.html 一.什么是Entity Framework 微软官方提供的ORM工具,ORM让开发人员节 ...

  8. Entity Framework快速入门笔记第四篇—ModelFirst

    前言:在上一篇博客中我们做了一个小的Demo,使用EF实现了对数据库的增删改查的操作,所谓学习,我们就要学会举一反三,所以好好学习一下上一篇的内容还是方便以后的扩展学习,这篇博客我们主要来研究一下Mo ...

  9. Entity Framework技术系列之2:三种开发模式实现数据访问

    前言 Entity Framework支持Database First.Model First和Code Only三种开发模式,各模式的开发流程大相径庭,开发体验完全不一样.三种开发模式各有优缺点,对 ...

最新文章

  1. 6.3文件传输协议FTP
  2. 943602cs 蓝牙驱动 win10_英特尔升级WiFi 和蓝牙驱动,Win10 更新5月版稳了
  3. Hiring data scientists
  4. 怎样删除oracle中的用户,Oracle 中删除已经连接的用户
  5. 【Other】Ubuntu 14.04 pptp 客户端连接配置
  6. HDUOJ-2094-产生冠军
  7. 半价秒杀,最后一天!戴尔i7高配电脑低至2750元!
  8. 安卓开发1-初步了解使用
  9. 关于用C#编写ActiveX控件2(转)
  10. 汽车质量管理体系IATF 16949和培训及相关的标准(主要是电动汽车)
  11. JDK和JRE的区别和联系
  12. GPA计算器beta1
  13. portSentry入侵检测工具
  14. YGG SEA 投资 5 万美元,购买 ARPG 游戏《变形机甲》中的 NFT 资产
  15. echarts中渐变色的使用
  16. 7-58 计算油费 (15 分)
  17. 男子取己击架后患净癖怪病 1地用12舒卫生纸
  18. (c语言)哈利·波特的考试 (25分)
  19. CUDA版本降级操作(记录)
  20. (Miller Rabin算法)判断一个数是否为素数

热门文章

  1. oracle express介绍
  2. [转]快速清除SQL Server日志的两种方法
  3. Outlook 阅读窗格(Reading Pane)
  4. Avalonia跨平台入门第十九篇之语音播放
  5. .NET 云原生架构师训练营(设计原则设计模式)--学习笔记
  6. RabbitMQ简介和六种工作模式详解
  7. 你也可以搞懂的微服务第一篇——来自ThoughtWork的学习体验
  8. GraphQL:Descriptor Attributes
  9. asp.net core 从 3.1 到 5.0
  10. c#: 协变和逆变深度解析