ASP.NET 数据库缓存依赖(2)

分类: asp.net技巧   出处:iocblog整理  更新时间:2009-07-23   添加到收藏  

  最后我们把dataset连同onremove委托一起插入到缓存中,在session_start中,为了“保险“,我另外添加了一个判断来调用refreshcache方法填充缓存。
  
  到这里,我们应用程序就创建好了,在任何页面中都可以访问到缓存的dataset。在webform1aspx中,我演示了如何使用它。
  
  [c#]
  private void page_load(object sender, system.eventargs e)
  
  {
  
  //保证缓存非空,如果为空,则填充它
    if(cache["employees"] == null)
       cachestatus.text = "cache refreshed at "+ datetime.now.tolongtimestring();
    else
       cachestatus.text = " dataset from cache ";
    dataset ds = (dataset)cache["employees"];
    datagrid1.datasource= ds.tables[0];
    datagrid1.databind();
  }
  
  现在,如果你请求这个页面,它将会每次成功的显示从从cache中取得的dataset,如果你保持浏览器打开,同时打开sql server的查询分析器,选择northwind数据库,执行sql语句'update employees set lastname = 'davovlieu' where employeeid =1',更新表中的记录,然后重新请求该页面,你将会看到缓存已经失效并刷新。
  
  译者按:关于基于数据库的缓存依赖,gotdotnet上也有一个用dataset实现的(rob howard 实现) asp.net cache invalidation on database change,
  
  目前在asp.net1.1版本没有非常自然的解决方案,值得欣慰的是,随whidbey一起发布的asp.net2.0,还有yuku,从数据层提供了一个不错的实现。让我们拭目以待!
  
 

上一页 [1] [2]


Tag: 缓存



文章整理:iocblog
版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。