25

我希望通过代码清除 NHibernate 中的整个二级缓存。有没有一种独立于所使用的缓存提供程序的方法?(我们有客户在同一个应用程序中同时使用 memcache 和 syscache)。

我们希望清除整个缓存,因为可能发生了数据库外部的更改(并且我们无法保证:哪些表/实体受到影响,因此我们必须假设最坏的情况)。

4

1 回答 1

36

这应该这样做:

sessionFactory.EvictQueries();
foreach (var collectionMetadata in sessionFactory.GetAllCollectionMetadata())
         sessionFactory.EvictCollection(collectionMetadata.Key);
foreach (var classMetadata in sessionFactory.GetAllClassMetadata())
         sessionFactory.EvictEntity(classMetadata.Key);
于 2010-04-18T04:17:29.743 回答