小编Vol*_*ula的帖子

如何使用SqlCacheDependency?

我需要为一个表实现SqlCacheDependency,这将依赖于这个查询: SELECT Nickname FROM dbo.[User].

我为此创建了一个方法:

private IEnumerable<string> GetNicknamesFromCache()
    {
        const String cacheValueName = "Nicknames";

        var result = HttpRuntime.Cache.Get(cacheValueName) as List<String>;
        if (result == null)
        {
            result = _repository.GetAllNicknames();

            var connectionString = ConfigurationManager.ConnectionStrings["RepositoryContext"].ConnectionString;
            var sqlConnection = new SqlConnection(connectionString);
            var sqlCommand = new SqlCommand("SELECT Nickname FROM dbo.[User]", sqlConnection);
            var sqlDependency = new SqlCacheDependency(sqlCommand);

            HttpRuntime.Cache.Insert(cacheValueName, result, sqlDependency);
        }

        return result;
    }
Run Code Online (Sandbox Code Playgroud)

但是,当我运行我的应用程序时,它不起作用.我检查了订户列表(sys.dm_qn_subscriptions表),没有记录.

我调查了很多时间,并且已经尝试了各种解决方案,但它们对我不起作用:

  • 使用可信连接并为公共角色设置一些权限:

    GRANT CREATE PROCEDURE TO public
    GRANT CREATE QUEUE TO public
    GRANT CREATE SERVICE TO public …

.net c# sql-server caching service-broker

14
推荐指数
1
解决办法
2万
查看次数

List <T>中使用哪种算法来动态分配内存?

现在我有一个动态分配数组内存的算法:

  • 如果数组已满,我创建一个大小为两倍的新数组,并复制项目.
  • 如果数组是四分之一满,我创建一个大小一半的新数组,并复制项目.

这是用于动态内存分配的相当快的算法,尽管将元素复制到新分配的数组的额外开销.

  1. 什么是更快,List<T>或基于阵列的这种算法?你会建议使用什么?

  2. 确实List<T>使用简单数组作为内部数据结构?

.net c# arrays algorithm data-structures

5
推荐指数
2
解决办法
3106
查看次数