请问大家:缓存依赖怎么设置啊?
我是想在读取数据库某个表的数据后,将数据存放在Cache["sqlDatas"]中,设置缓存依赖,然后更改数据表中的某条记录中某列的值,然后刷新页面,页面中就能显示最新更改的数据。
请大家帮我说说具体怎么设置啊?我的数据库是SQL Server 2005,我的数据库是Northwind,经测试,已经启用了Service Broker。

解决方案 »

  1.   


      /// <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;
            }
        }
      

  2.   

    1楼的哥们儿,你这些代码我都有了。我现在的问题关键在于,当我更改数据表之后,刷新页面,页面上就应该显示更新后的数据啊!(注意:这个页面的数据是从Cache中读出来的,而不是从数据库中读出来的。)