第三篇 Entity Framework Plus 之 Query Cache
来源:互联网 发布:双十一淘宝客服 编辑:程序博客网 时间:2024/06/18 12:47
离上一篇博客,快一周,工作太忙,只能利用休息日来写一些跟大家分享,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
NoExpirationQueryCache
AbsoluteExpirationQueryCache
SlidingExpirationQueryCache
代码就不做解释,等一下逐个测试一下给大家看,查询的信息是上一篇第二篇 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
- 第二篇 Entity Framework Plus 之 Query Future
- 第四篇 Entity Framework Plus 之 Batch Operations
- 第一篇 Entity Framework Plus 之 Audit
- ASP.NET 4.0 与 Entity Framework 4-第三篇-使用Entity Framework调用存储过程
- Entity Framework 4-第三篇-使用Entity Framework调用存储过程
- Entity Framework之犹豫不决
- Entity Framework之问题收集
- Entity Framework之问题收集
- Entity Framework之查询总结
- Entity Framework之深入分析
- Entity Framework之Code First
- Entity Framework之深入分析
- MVC5 Entity Framework学习之创建Entity Framework数据模型
- MVC5 Entity Framework学习之Entity Framework高级功能
- Silverlight访问数据库之ADO.NET Entity Framework篇
- 第三篇:Entity Framework CodeFirst & Model 映射 续篇 EntityFramework Power Tools 工具使用
- mysqlserver优化之MySQL Query Cache配置
- 技术人生,专家本色——采访张善友老师后的一点感受
- Xamarin Evolve 2016 Keynote回顾
- Microsoft将在UWP上支持React Native,同时为VS Code添加工具软件
- .NET Core 1.0 RC2 历险之旅
- 【给中高级开发者】构建高性能ASP.NET应用的几点建议
- 第三篇 Entity Framework Plus 之 Query Cache
- HoloLens开发手记
- 【DDD/CQRS/微服务架构案例】在Ubuntu 14.04.4 LTS中运行WeText项目的服务端
- 基于CefSharp构建基于Chromium的应用程序
- Asp.net 面向接口可扩展框架之核心容器
- ASP.NET Core的配置(3): 将配置绑定为对象
- WeText项目:一个基于.NET实现的DDD、CQRS与微服务架构的演示案例
- 我是这样入侵 Hacking Team 的
- Asp.net 面向接口框架之应用程序上下文作用域组件