Я хочу очистить весь второй кэш уровня в NHibernate с помощью кода. Существует ли способ сделать это, которое независимо от используемого поставщика кэша? (у нас есть клиенты, использующие и кэш-память и syscache в рамках того же приложения).
Мы хотим очиститься, весь кэш из-за изменений, внешних к базе данных, возможно, произошел (и у нас нет ре гарантий: какие таблицы/объекты были затронуты, таким образом, мы должны принять худшее).
Это должно сделать:
sessionFactory.EvictQueries();
foreach (var collectionMetadata in sessionFactory.GetAllCollectionMetadata())
sessionFactory.EvictCollection(collectionMetadata.Key);
foreach (var classMetadata in sessionFactory.GetAllClassMetadata())
sessionFactory.EvictEntity(classMetadata.Key);