NHibernate кэш 1-го уровня
Контекст: я работаю над приложением Windows.NET 3.5, которое аварийно завершает работу, когда ОЗУ полностью заполняется кэшированием NHibernate 1-го уровня.
Вопрос 1: выполняет ли алгоритм кэширования 1-го уровня NHibernate проверки памяти, чтобы гарантировать наличие достаточного места?
Вопрос 2: Правильны ли следующие шаги псевдокода при использовании метода Evict?
1 - сессия. Запрос
2 - сохранить результаты запроса
3 - сессия. Выселение
4 - вернуть сохраненные результаты
Обновить
В контексте, где сеансы создаются в начале приложения и удаляются только после завершения приложения, я хочу контролировать размер кэша первого уровня NHibernate. Документация NHibernate подробно объясняет, как работает кеш и как им управлять, но не упоминает размер кеша, что является проблемой в моем случае.
Вопрос 3: возможно ли узнать размер кэша сеанса (чтобы впоследствии очистить его при необходимости)? В качестве альтернативы, можно ли установить ограничение на размер кэша, который Nhibernate может использовать для всего приложения?