asp.net 观察者模式初步 AggregateCacheDependency

在项目中可能会遇到这样的情况,我们需要时时的读取某个信息。如多个人一起报价,每个人的价格要在每个人的面前匿名显示。对于这样的时时性,很多时候我们就是定时的读数据库,显然这样不是最好的办法,在实际应用过程中,会出现很多问题,如速度、服务器负载。
当我在看PetShop4.0的时候我看到了AggregateCacheDependency,它实现了Catch于数据库的时时性,并联想到了观察者模式,不知道那位高手给指点下,,这样能不能提高程序的性能?
我自己也在找时间做个例子测试下。

用aspnet_regsql命令添加启用通知。
请确保该表存在,并确保用于缓存依赖项的表名称与缓存通知注册中使用的表名称完全相同。

若要为 SQL 缓存通知启用表,请使用 SqlCacheDependencyAdmin.EnableTableForNotifications 方法或命令行工具 aspnet_regsql。有关如何使用此工具的详细信息,请运行“aspnet_regsql.exe -?”。

若要获取数据库中已启用表的列表,请使用 SqlCacheDependencyManager.GetTablesEnabledForNotifications 方法或命令行工具 aspnet_regsql.exe。

/Files/nanshouyong326/CastleSample.rar呵呵,名子有问题。。

在缓存由于数据变动而自动删除时,还有回掉,,不过我测试了,,感觉总是晚了2秒到3秒才真正删除。可能是机子或是用的虚拟ISS原因。在研究。。

ContractedBlock.gif ExpandedBlockStart.gif 所用表的SQL创建
 1None.gifif exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FKEAE98E9BEBA1BE1A]') and OBJECTPROPERTY(id, N'IsForeignKey'= 1)
 2None.gifALTER TABLE [dbo].[Post] DROP CONSTRAINT FKEAE98E9BEBA1BE1A
 3None.gifGO
 4None.gif
 5None.gifif exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Blog]') and OBJECTPROPERTY(id, N'IsUserTable'= 1)
 6None.gifdrop table [dbo].[Blog]
 7None.gifGO
 8None.gif
 9None.gifCREATE TABLE [dbo].[Blog] (
10None.gif    [Id] [int] IDENTITY (11) NOT NULL ,
11None.gif    [Name] [nvarchar] (255) COLLATE Chinese_PRC_CI_AS NULL ,
12None.gif    [Author] [nvarchar] (255) COLLATE Chinese_PRC_CI_AS NULL 
13None.gif) ON [PRIMARY]
14None.gifGO
其中的类图简略如下:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值