缓存依赖怎么设置?

mynameisduanxuan 2011-07-08 11:57:50
请问大家:缓存依赖怎么设置啊?
我是想在读取数据库某个表的数据后,将数据存放在Cache["sqlDatas"]中,设置缓存依赖,然后更改数据表中的某条记录中某列的值,然后刷新页面,页面中就能显示最新更改的数据。
请大家帮我说说具体怎么设置啊?

我的数据库是SQL Server 2005,我的数据库是Northwind,经测试,已经启用了Service Broker。
...全文
34 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
mynameisduanxuan 2011-07-09
  • 打赏
  • 举报
回复
1楼的哥们儿,你这些代码我都有了。我现在的问题关键在于,当我更改数据表之后,刷新页面,页面上就应该显示更新后的数据啊!(注意:这个页面的数据是从Cache中读出来的,而不是从数据库中读出来的。)
xuyiazl 2011-07-09
  • 打赏
  • 举报
回复

/// <summary>
/// SQL缓存依赖类
/// </summary>
public static class SqlDependencyFactory
{
/// <summary>
/// 启动监听
/// </summary>
/// <param name="connectionString"></param>
public static void Start(string connectionString)
{
SqlDependency.Start(connectionString);
}
/// <summary>
/// 停止监听
/// </summary>
/// <param name="connectionString"></param>
public static void Stop(string connectionString)
{
SqlDependency.Stop(connectionString);
}
/// <summary>
/// 添加依赖对象
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="key"></param>
/// <param name="t"></param>
public static void Add<T>(string key, T t)
{
if (SqlDependencyFactory.isDependency)
{
Guard.IsNotNull(Database, "数据库名不能为空");
Guard.IsNotNull(TableName, "表名不能为空");

SqlCacheDependency dependency = new SqlCacheDependency(Database, TableName);
if (!DataCache.Exists(key))
{
DataCache.Add<T>(t, key, dependency);
}
}
}
/// <summary>
/// 清除依赖对象
/// </summary>
public static void Clear(string key)
{
DataCache.Clear(key);
}
/// <summary>
/// 检测依赖对象是否存在
/// </summary>
/// <param name="key"></param>
/// <returns></returns>
public static bool Exists(string key)
{
return DataCache.Exists(key);
}
/// <summary>
/// 获取依赖缓存对象
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="key"></param>
/// <returns></returns>
public static T Get<T>(string key)
{
T t = default(T);
if (DataCache.Exists(key))
{
DataCache.Get<T>(key, out t);
}
return t;
}

/// <summary>
/// 是否启动缓存依赖
/// </summary>
public static bool isDependency
{
get;
set;
}
/// <summary>
/// 数据库名
/// </summary>
public static string Database
{
get;
set;
}
/// <summary>
/// 表名
/// </summary>
public static string TableName
{
get;
set;
}
}

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧