Удаление объектов от второго кэша уровня NHibernate

Мы используем представления для всего нашего простого экспорта данных в файлы CSV. Это упрощает процесс записи пакета и встраивания sql в пакете, который становится громоздким и твердым отладить против.

Используя представления, мы можем выполнить представление и видеть точно, что экспортировалось, никакой хлам или неизвестные. Это значительно помогает в поиске и устранении неисправностей проблем с неподходящими данными, экспортирует и скрывает любые сложные соединения позади представления. Предоставленный, мы используем очень старую унаследованную систему от основанной на условиях системы, которая экспортирует в sql, таким образом, соединения немного более сложны чем обычно.

25
задан Jonathan Rauch 6 October 2011 в 23:21
поделиться

1 ответ

sessionFactory предоставляет нужные вам методы ... из главы 19.3 справочника NHibernate :

Чтобы полностью удалить все объекты из кеша сеанса, вызовите ISession.Clear () Для кеша второго уровня в ISessionFactory определены методы для удаления кэшированного состояния объекта. экземпляр, весь класс, экземпляр коллекции или роль всей коллекции.

sessionFactory.Evict(typeof(Cat), catId); //evict a particular Cat
sessionFactory.Evict(typeof(Cat)); //evict all Cats
sessionFactory.EvictCollection("Eg.Cat.Kittens", catId); //evict a particular collection of kittens
sessionFactory.EvictCollection("Eg.Cat.Kittens"); //evict all kitten collections
44
ответ дан 28 November 2019 в 21:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: