我希望通过代码清除 NHibernate 中的整个二级缓存。有没有一种独立于所使用的缓存提供程序的方法?(我们有客户在同一个应用程序中同时使用 memcache 和 syscache)。
我们希望清除整个缓存,因为可能发生了数据库外部的更改(并且我们无法保证:哪些表/实体受到影响,因此我们必须假设最坏的情况)。
我希望通过代码清除 NHibernate 中的整个二级缓存。有没有一种独立于所使用的缓存提供程序的方法?(我们有客户在同一个应用程序中同时使用 memcache 和 syscache)。
我们希望清除整个缓存,因为可能发生了数据库外部的更改(并且我们无法保证:哪些表/实体受到影响,因此我们必须假设最坏的情况)。
这应该这样做:
sessionFactory.EvictQueries();
foreach (var collectionMetadata in sessionFactory.GetAllCollectionMetadata())
sessionFactory.EvictCollection(collectionMetadata.Key);
foreach (var classMetadata in sessionFactory.GetAllClassMetadata())
sessionFactory.EvictEntity(classMetadata.Key);