我希望通过代码以清除整个第二级高速缓存中的NHibernate。是否有被使用的方式做到这一点是独立的缓存提供的? (我们有使用相同的应用程序内的两个内存缓存和syscache客户)。

我们想清楚,因为外部数据库更改整个缓存可能已经发生(我们也没有保证重新:哪些表/实体受到影响,所以我们必须假设最坏的)

有帮助吗?

解决方案

此应该做的:

sessionFactory.EvictQueries();
foreach (var collectionMetadata in sessionFactory.GetAllCollectionMetadata())
         sessionFactory.EvictCollection(collectionMetadata.Key);
foreach (var classMetadata in sessionFactory.GetAllClassMetadata())
         sessionFactory.EvictEntity(classMetadata.Key);
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top