快速业务通道

ASP.NET 2.0数据教程之五十八:用ObjectDataSource缓存数据

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-21
taSource控件设置为使用缓存,且调用 ProductsBLL类的GetProducts()方法来获取数据。在本页(或另外创建一个页面) 再添加GridView 和ObjectDataSource控件,但是设置第二个ObjectDataSource控 件调用GetProductsByCategoryID(categoryID)方法。由于这2个 ObjectDataSource控件的SelectMethod属性不同,因此它们各自有各自不同的缓 存值。如果你在第一个GridView控件里编辑某个产品,然后在第二个GridView控 件里重新绑定数据(比如分页、排序等),我们在第二个GridView控件

里看 到该产品的值依然是“老的缓存数据”(而并不是第一个GridView控件 修改后的值)

简而言之,如果你乐于使用“老的缓存数据”, 那只有使用基于时间的缓存时间值(time-based expiries,也就是设置具体的缓存 时间长度),如果对数据及时更新要求很高的话,将缓存时间设短点。如果不允许 使用“老的缓存数据”的话,要么放弃缓存,要么使用SQL cache dependencies(你可以认为它是你缓存的数据库数据)。我们将在后面探讨SQL cache dependencies。

总结:

在本文我们考察了 ObjectDataSource内建的缓存功能。仅仅设置很少的属性,我们可以将 ObjectDataSource调用SelectMethod方法得到的数据进行缓存。其CacheDuration 和 CacheExpirationPolicy属性指定了缓存的时间和类型(absolute或sliding)。 而CacheKeyDependency属性将ObjectDataSource的缓存实体与现有的缓存从属体 (cache dependency)关联起来,一般是SQL cache dependencies。

因为 ObjectDataSource只是简单地进行数据缓存,我们可以通过编程实现 ObjectDataSource内建的这种功能。不过在表现层这样做没有意义,因为 ObjectDataSource控件提供了该功能。不过我们可以在体系结构的其它层次实现 缓存功能。为此,我们需要一个逻辑,它与ObjectDataSource调用的相同。在下 一篇文章我们将考察如何在体系结构内部编程处理数据缓存。

祝编程快乐 !

作者简介

Scott Mitchell,著有六本ASP/ASP.NET方面的书,是 4GuysFromRolla.com的创始人,自1998年以来一直应用微软Web技术。Scott是个 独立的技 术咨询顾问,培训师,作家,最近完成了将由Sams出版社出版的新作, 24小时内精通ASP.NET 2.0。他的联系电邮为mitchell@4guysfromrolla.com,也 可以通过他的博客http://ScottOnWriting.NET与他联系。

本文配套源码

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号