C#如何使用SqlCacheDependency

1、数据库依赖类SqlCacheDependency

数据库缓存依赖主要解决的是当数据库的内容发生改变时,如何及时通知缓存,并更新缓存中的数据的问题。

语法定义:

SqlCacheDependency类主要的构造函数如下:

public SqlCacheDependency(string database,string table)

使用之前需要先配置web.config,加入如下节点。

  <connectionStrings>
<add name="DBConfig" connectionString="......"/>

</connectionStrings
> <system.web> <caching> <sqlCacheDependency enabled="true" pollTime="5000"> <databases> <add name="DispatchAssist" connectionStringName="DBConfig" /> </databases> </sqlCacheDependency> </caching> </system.web>

2、注册

打开VS命令提示工具,执行如下格式命令。

  有身份验证输入:aspnet_regsql.exe -S  SqlServer服务器  -U <Username> -P <Password> -ed -d 数据库名称 -et -t 表名

  无身份验证输入:aspnet_regsql.exe -S  SqlServer服务器  -ed -d 数据库名称 -et -t 表名

   以下是该工具的命令参数说明:

-? 显示该工具的帮助功能;

-S 后接的参数为数据库服务器的名称或者IP地址;

-U 后接的参数为数据库的登陆用户名;

-P 后接的参数为数据库的登陆密码;

-E 当使用windows集成验证时,使用该功能;

-d 后接参数为对哪一个数据库采用SqlCacheDependency功能;

-t 后接参数为对哪一个表采用SqlCacheDependency功能;

-ed 允许对数据库使用SqlCacheDependency功能;

-dd 禁止对数据库采用SqlCacheDependency功能;

-et 允许对数据表采用SqlCacheDependency功能;

-dt 禁止对数据表采用SqlCacheDependency功能;

-lt 列出当前数据库中有哪些表已经采用sqlcachedependency功能。

3、实例示范

private readonly static string ALlRoleCacheKey = "ALlRoleCacheKey";
public List<UserRole> GetAllUserRole()
        {
            try
            {
                List<UserRole> list = CacheHelper.Get<List<UserRole>>(ALlRoleCacheKey);
                if (list == null)
                {
                    list = _provider.GetAllUserRole();  //获取list数据源
                    System.Web.Caching.SqlCacheDependency dependency = new System.Web.Caching.SqlCacheDependency
                       (System.Configuration.ConfigurationManager.AppSettings["CurrentDB"], "UserRole");
                    CacheHelper.Insert(ALlRoleCacheKey, list, dependency);
                }
                return list;
            }
            catch (Exception e)
            {
                Logger.Error("AuthManager. GetAllUserRole() ", e);
                return null;
            }
        }
原文地址:https://www.cnblogs.com/chenh/p/6739703.html