Я только начал думать об использовании кеша второго уровня NHibernate в одном из моих приложений. Я бы, вероятно, использовал NHibernate.Caches.SysCache.SysCacheProvider
, который использует кеш ASP.net.
Включение кэша не было проблемой, но мне интересно, как управлять кешем e. г. программно удаляя определенные объекты из кеша и т.д.
Мое приложение - это какая-то база данных изображений. Пользователь загружает изображения поверх бэкэнд и может просматривать его во внешнем интерфейсе, обращаясь к /ImageDb/Show?userId=someUserId
Данные не меняются очень часто. И если он изменится, пользователи не будут иметь значения с кнопкой "очистить мой кеш" в бэкэнд, который удаляет кешированные объекты для этого пользователя из кеша.
Я нашел решение онлайн, которое может удалить все кешированные объекты из кеша второго уровня nhibernates. Но для меня это слишком грубая сила... Я не хочу очищать весь кеш для десятков пользователей только потому, что один пользователь пытался очистить кеш для своих собственных данных.
Итак, что я в основном хотел сделать: выборочно удалять кешированные объекты db из nhibernates кэша второго уровня в С#.
Возможно ли это? Я думаю, это также зависит от поставщика кеша. Если это невозможно сделать с поставщиком кеша ASP.net, я открыт для других встроенных/открытых исходных кодов.