第三篇 Entity Framework Plus 之 Query Cache
2016-04-26 07:22
363 查看
离上一篇博客,快一周,工作太忙,只能利用休息日来写一些跟大家分享,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 之 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跨平台或扫描二维码关注
相关文章推荐
- BlockingQueue的使用
- 谈谈java的BlockingQueue
- Android Material Design新UI控件使用大全 三
- 安利一个MVC的好东西,RazorGenerator.MsBuild,可以自动编译cshtml文件
- UINavigationController 及使用中遇到的问题总结
- TBB(Intel Threading Building Blocks)学习笔记
- Hibernate中报错:ServiceRegistryBuilder cannot be resolved to a type
- vue.js-step-everthing-1
- Enabling Cross Origin Requests for a RESTful
- Jackson readValue 方法处理List Map等带泛型的类型
- 6.4 Ext.core.DomQuery 单实例查询选择器,通过正则表达式查找DOM或者HTM
- UGUI中的Canvas、Camera和Canvas Scaler
- android studio学习---菜单栏BUILD功能
- hdu 1159 && POJ 1458Common Subsequence(LCS)
- UITextField的placeholder文字的位置,颜色等的自定义设置
- 队列(Queue)
- ${pageContext.request.contextPath}和<%=request.getContextPath()%>
- java.sql.SQLException:value;'0000-00-00'can not be represented as java.sql.date
- Android消息机制探索(Handler,Looper,Message,MessageQueue)
- hdu 5667 Sequence(矩阵快速幂+快速幂+费马小定理)(bestcoder# 80 1002)