Как очистить весь второй кэш уровня в NHibernate

Я хочу очистить весь второй кэш уровня в NHibernate с помощью кода. Существует ли способ сделать это, которое независимо от используемого поставщика кэша? (у нас есть клиенты, использующие и кэш-память и syscache в рамках того же приложения).

Мы хотим очиститься, весь кэш из-за изменений, внешних к базе данных, возможно, произошел (и у нас нет ре гарантий: какие таблицы/объекты были затронуты, таким образом, мы должны принять худшее).

25
задан Bittercoder 12 October 2011 в 20:40
поделиться

1 ответ

Это должно сделать:

sessionFactory.EvictQueries();
foreach (var collectionMetadata in sessionFactory.GetAllCollectionMetadata())
         sessionFactory.EvictCollection(collectionMetadata.Key);
foreach (var classMetadata in sessionFactory.GetAllClassMetadata())
         sessionFactory.EvictEntity(classMetadata.Key);
36
ответ дан 28 November 2019 в 21:28
поделиться
Другие вопросы по тегам:

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