SqlCacheDependency如何使用?我需要为依赖于此查询的表实现SqlCacheDependency:SELECTNicknameFROMdbo.[User]。我为此创建了一个方法:privateIEnumerableGetNicknamesFromCache(){constStringcacheValueName="Nicknames";varresult=HttpRuntime.Cache.Get(cacheValueName)作为列表;if(result==null){result=_repository.GetAllNicknames();varconnectionString=ConfigurationManager.ConnectionStrings["RepositoryContext"].ConnectionString;varsqlConnection=newSqlConnection(connectionString);varsqlCommand=newSqlCommand("SELECTNicknameFROMdbo.[User]",sqlConnection);varsqlDependency=newSqlCacheDependency(sqlCommand);HttpRuntime.Cache.Insert(cacheValueName,结果,sqlDependency);}返回结果;但是当我运行我的应用程序时,它不起作用。我检查了订阅者列表(sys.dm_qn_subscriptions表),没有任何记录。我调查了很多时间并尝试了各种解决方案,但它们对我不起作用:但它没有帮助。它仍然不起作用。我如何让它工作?我找到了解决办法。首先检查你的表是否启用了ServiceBroker,如果需要的话启用它:SELECTname,is_broker_enabledFROMsys.databasesWHEREname=''ALTERDATABASESETenable_brokerWITHROLLBACKIMMEDIATE接下来在SQLServer中创建新角色sql_dependency_role,sql_dependency_role授予权限和授权rolestousers:EXECsp_addrole'sql_dependency_role'GRANTCREATEPROCEDUREtosql_dependency_roleGRANTCREATEQUEUEtosql_dependency_roleGRANTCREATESERVICEtosql_dependency_roleGRANTREFERENCESonCONTRACTm/SQLPostQueryNotification]tosql_dependency_roleGRANTVIEWDEFINITIONTOsql_dependency_roleGRANTSELECTtosql_dependency_roleGRANTSUBSCRIBEQUERYNOTIFICATIONSTOsql_dependency_roleGRANTRECEIVEONQueryNotificationErrorsQueueTOsql_dependency_roleEXECsp_addrolemember'sql_dependency_role',''之后添加C#代码以使用SqlCacheDependency或SqlDependency(大多数数据方式相同)。我改变了我的方法,现在它看起来像这样:privateIEnumerableGetNicknamesFromCache(){constStringcacheValueName="Nicknames";varresult=HttpRuntime.Cache.Get(cacheValueName)作为列表;if(result==null){result=_repository.GetAllNicknames();使用(varconnection=newSqlConnection(_config.ConnectionString)){connection.Open();SqlDependency.Start(_config.ConnectionString);varcommand=newSqlCommand("SELECTNicknameFROMdbo.[User]",connection);vardependency=newSqlCacheDependency(命令);HttpRuntime.Cache.Insert(cacheValueName,结果,依赖);命令.ExecuteNonQuery();}}返回结果;现在它工作正常。不要忘记在创建SqlCacheDependency或SqlDependency之前调用SqlDependency.Start方法并在最后执行命令。以上就是C#学习教程:SqlCacheDependency的使用方法?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
