C#MemoryCache以两个项作为LocalCache的键实现

时间:2018-10-05 21:51:29

标签: c# asp.net .net caching memorycache

我在SP中使用两个输入参数(UserID,ProfileID)从数据库检索数据。我想将结果存储在memoryCache中,因为在一段时间内结果是静态的。我以为使用

字符串cacheKey = UserID.toString()+“ _” + ProfileID.ToString()作为键。如果我连接字符串,这是一个非常简单的解决方案。

我可以将静态ConcurrentDictionary用作缓存,将Tuple用作缓存键,但是我确实需要在一定时间后使缓存过期。

我想知道其他任何替代方法/想法,以及使用字符串作为键进行字符串连接的缺点。

1 个答案:

答案 0 :(得分:1)

您对缓存键的字符串连接的解决方案很好,我会继续使用它。

请注意,如果要使用元组作为缓存键,ConcurrentDictionary可以接受任何对象作为缓存键,但是实际上它取决于“ GetHashCode()”对象方法,因此您需要验证元组生成的HashCode是否一致,否则您将遇到错误。

字符串串联是一个更简单的解决方案。