Мой сценарий довольно прост, у меня есть 1 таблица с примерно 20 продуктами, которые я хотел бы добавить в кэш 2-го уровня (SysCache), используя Fluent NHibernate. Я запрашиваю эту таблицу четырьмя различными способами, поэтому я решил, что время от времени все это помещаю в кеш и уменьшаю количество обращений к базе данных.
Мои 4 запроса:
- Все (начало, макс.) Для подкачки
- ByDate (дата) для получения продуктов до или после определенной даты
- ById (ID)
- Byname (имя)
Я включил SysCache в свободной конфигурации, используя приведенный ниже код, и добавил соответствующую конфигурацию в web.config.
MsSqlConfiguration.MsSql2008.Cache(c => c.ProviderClass<SysCacheProvider>()
.UseQueryCache())
Я добавил следующий код в ProductMap
Cache.ReadWrite().Region("testregion");
Теперь, как мне продолжить отсюда? Должен ли я добавить SetCachable (true) ко всем моим 4 запросам? Это правильный подход?
Часть меня считает, что должен быть способ кешировать запрос All (), а затем указать 4 вышеупомянутых запроса, чтобы использовать кешированный All () для запроса. Возможно, мои предположения совершенно неверны, и каждый запрос нужно добавлять в кеш отдельно, используя SetCachable (true) на уровне запроса.
Каков правильный подход к настройке кэша для этого случая?
Спасибо