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