如何清除NHibernate的整个二级缓存
-
27-09-2019 - |
题
我希望通过代码以清除整个第二级高速缓存中的NHibernate。是否有被使用的方式做到这一点是独立的缓存提供的? (我们有使用相同的应用程序内的两个内存缓存和syscache客户)。
我们想清楚,因为外部数据库更改整个缓存可能已经发生(我们也没有保证重新:哪些表/实体受到影响,所以我们必须假设最坏的)
。解决方案
此应该做的:
sessionFactory.EvictQueries();
foreach (var collectionMetadata in sessionFactory.GetAllCollectionMetadata())
sessionFactory.EvictCollection(collectionMetadata.Key);
foreach (var classMetadata in sessionFactory.GetAllClassMetadata())
sessionFactory.EvictEntity(classMetadata.Key);
不隶属于 StackOverflow