コードを介してNHibernateの第2レベルのキャッシュ全体をクリアしたいと思います。使用されているキャッシュプロバイダーに依存しない、これを行う方法はありますか?(同じアプリケーション内でmemcacheとsyscacheの両方を使用しているお客様がいます)。
データベースの外部で変更が発生した可能性があるため、キャッシュ全体をクリアしたいと考えています(また、影響を受けたテーブル/エンティティについては保証されていないため、最悪の事態を想定する必要があります)。
コードを介してNHibernateの第2レベルのキャッシュ全体をクリアしたいと思います。使用されているキャッシュプロバイダーに依存しない、これを行う方法はありますか?(同じアプリケーション内でmemcacheとsyscacheの両方を使用しているお客様がいます)。
データベースの外部で変更が発生した可能性があるため、キャッシュ全体をクリアしたいと考えています(また、影響を受けたテーブル/エンティティについては保証されていないため、最悪の事態を想定する必要があります)。
これは行う必要があります:
sessionFactory.EvictQueries();
foreach (var collectionMetadata in sessionFactory.GetAllCollectionMetadata())
sessionFactory.EvictCollection(collectionMetadata.Key);
foreach (var classMetadata in sessionFactory.GetAllClassMetadata())
sessionFactory.EvictEntity(classMetadata.Key);