Welcome 微信登录

首页 / 网页编程 / ASP.NET / 数据库组件 Hxj.Data (二十二) (缓存)

数据库组件 Hxj.Data (二十二) (缓存)2011-07-26 博客园 steven hu首先我是做web开发的,所以很多会偏向web的,组件使用的缓存是System.Web.HttpRuntime.Cache。

组件在默认情况下是关闭缓存的。

所以要开启缓存查询要做一下配置。

先看一下例子配置:

<configSections>
<section name="HxjCacheConfig" type="Hxj.Data.CacheConfiguration,Hxj.Data"/>
</configSections>
<HxjCacheConfig enable="true">
<entities>
<add key="NorthwindConnectionString.Products" value="60"></add>
</entities>
</HxjCacheConfig>
<connectionStrings>
<add name="NorthwindConnectionString" connectionString="Data Source=riccihu;Initial Catalog=Northwind;Integrated Security=True" providerName="System.Data.SqlClient"/>
</connectionStrings>

HxjCacheConfig 节点的 enable 表示是否开启缓存,默认是关闭状态,除非显式开启 enable="true" 。

entities 节点下的配置就是对实体查询的缓存配置。

<add key="NorthwindConnectionString.Products" value="60"></add>

表示connectionStrings中的节点name="NorthwindConnectionString"的连接下的Products表配置.

value="60" 表示缓存60秒。

所以一定要connectionStrings的name加上实体名,不然配置无效。

当然value也可以是缓存依赖的文件。

<add key="NorthwindConnectionString.Products" value="1.txt"></add>

表示Products表的查询缓存依赖程序根目录下的1.txt文件。组件会判断该文件是否存在,不存在则该 配置无效。

那测试一下缓存配置。

List<Products> list = new List<Products>();
for (int i = 0; i < 2; i++)
{
list.Add(DbSession.Default.From<Products>().ToFirst());
}

for (int i = 0; i < 3; i++)
{
list.Add(DbSession.Default.From<Products>().ToFirst());
}