读 PetShop代码(数据缓存篇)

本文介绍在PetShop项目中如何配置SQL缓存依赖,包括数据库表的启用步骤及配置文件设置。通过具体示例展示了如何使用Microsoft .Net框架SDK的aspnet_regsql工具来启用SQL缓存依赖,并说明了配置文件中的关键参数。

PetShop中使用了拉SQL缓存依赖,使用拉SQL缓存依赖的项目只有在数据修改时才会立即失效。

使用拉SQL缓存依赖之前,必须执行下面两步配置:

1 对一个或多个数据库表启用SQL缓存依赖。

使用Microsoft.Net框架SDK程序组的SDK命令行提示程序执行aspnet_regsql命令行工具,例如

启用Pubs数据库的SQL数据库依赖,执行命令如下:

aspnet_regsql -C "Data Source=localhost;Integrated Security=True;Initial Catalog=Pubs" -ed

该命令创建AspNet_SqlCacheTablesForChangeNotification数据表。

启用一个数据库之后,就可以启用特定表的SQL缓存依赖:

aspnet_regsql -C "Data Source=localhost;Integrated Security=True;Initial Catalog=Pubs" -et -t Titles

该命令启用了Titles表的数据库依赖,将添加一行新数据在AspNet_SqlCacheTablesForChangeNotification数据表中。

按上面所述,可以添加PetShop相关表的SQL缓存依赖。

2 配置文件中配置SQL缓存依赖。

PetShop中相应部分配置如下:

ContractedBlock.gifExpandedBlockStart.gifCode
<caching>
 
<sqlCacheDependency enabled="true" pollTime="10000">
  
<databases>
   
<add name="MSPetShop4" connectionStringName="SQLConnString1" pollTime="10000"/>
  
</databases>
 
</sqlCacheDependency>
</caching>

 

每隔10000毫秒检查数据库中的表的数据是否更新

对页面输出缓存使用拉SQL缓存依赖

举例:在其空间NavigationControl.ascx中,写代码如下:

<%@ OutputCache Duration="10000"  VaryByParam="*"%>

this.CachePolicy.Dependency = new DependencyAccess().CreateCategoryDependency();//设定此控件的依赖项

依赖项的建立(CreateCategoryDependency()的大概实现):

利用类SqlCacheDependency,类AggregateCacheDependency进行实现,类SqlCacheDependency用来建立依赖项,类AggregateCacheDependency负责监视依赖项对象的集合。例如对库MSPetShop中的表Product,表Category建立依赖项。代码如下:

ContractedBlock.gifExpandedBlockStart.gifCode
SqlCacheDependency s1=new SqlCacheDependency("MSPetShop4","Product");
SqlCacheDependency s2
=new SqlCacheDependency("MSPetShop4","Category");

AggregateCacheDependency cacheDependency 
= new AggregateCacheDependency();
cacheDependency.Add(s1);
cacheDependency.Add(s2);

return cacheDependency;

拉SQL缓存依赖建立成功。

转载于:https://www.cnblogs.com/sunny0311/archive/2008/09/24/1298249.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值