C # MemoryCache Реализация с двумя элементами в качестве ключа LocalCache - PullRequest
0 голосов
/ 06 октября 2018

Я использую два входных параметра (UserID, ProfileID) в SP для извлечения данных из базы данных.Я хотел бы сохранить результат в memoryCache, так как результат очень статичен в течение некоторого времени.Я думал использовать

string cacheKey = UserID.toString () + "_" + ProfileID.ToString () в качестве ключа.Это довольно простое решение, если я конкатирую строку.

Я могу использовать статический ConcurrentDictionary в качестве Cache и Tuple в качестве ключа кеша, но мне по истечении определенного периода времени требуется кеширование.

Я хотел бы узнать о любых других альтернативных подходах / мыслях и, если какие-либо недостатки, о конкатенации строк, использующих в качестве ключа.

1 Ответ

0 голосов
/ 06 октября 2018

Ваше решение для конкатенации строк для ключа кэша хорошее, я бы остановился на этом.

Осторожно, если вы хотите использовать кортеж в качестве ключа кэша, ConcurrentDictionary принимает любой объект в качествеключ кэширования, но от метода объекта GetHashCode () зависит его фактическое использование в качестве ключа, поэтому вам необходимо проверить, является ли HashCode, сгенерированный вашими кортежами, согласованным, иначе у вас будет ошибка.

Конкатенация строк - более простое решение.

...