Question

Je souhaite vider le cache tout le deuxième niveau dans NHibernate via le code. Est-il possible de le faire qui est indépendant du fournisseur de cache utilisé? (Nous avons des clients utilisant à la fois memcache et syscache dans la même application).

Nous souhaitons effacer tout le cache en raison des changements externes à la base de données peut avoir eu lieu (et nous avons aucune garantie re: quelles tables / entités ont été touchées, nous devons donc supposer le pire)

.
Était-ce utile?

La solution

Cela devrait faire:

sessionFactory.EvictQueries();
foreach (var collectionMetadata in sessionFactory.GetAllCollectionMetadata())
         sessionFactory.EvictCollection(collectionMetadata.Key);
foreach (var classMetadata in sessionFactory.GetAllClassMetadata())
         sessionFactory.EvictEntity(classMetadata.Key);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top