• 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;
                }
            }
  • 相关阅读:
    【36氪收录】观「招商银行」隐私计算布局的思考
    如何用cmake编译
    docker | Ubuntu16.04安装与卸载docker
    通过删除注册表重新获得软件试用期
    k8s | 重启Kubernetes Pod的几种方式
    2021年终总结(一)
    凡是过往、皆为序章20210917PPT分享
    多厂商容器平台开发系统性总结
    VS2022安装.NetFramework4.0目标包的方法
    C# Winform窗体继承过程中,TableLayoutPanel是不支持继承的
  • 原文地址:https://www.cnblogs.com/chenh/p/6739703.html
Copyright © 2020-2023  润新知