2011-04-07 2 views
3

Je ne voulais pas invalider manuellement (actualiser) le cache de second niveau. Comment puis je faire ça?Invalider manuellement le cache de second niveau NHibernate

+1

double: http://stackoverflow.com/questions/2985749/nhibernate-second-level-cache-with-external-updates – cbp

+0

double possible de [Comment pour effacer tout le cache de second niveau dans NHibernate] (http://stackoverflow.com/questions/2660714/how-to-clear-the-entire-second-level-cache-in-nhibernate) –

Répondre

4

Vous pouvez faire quelque chose comme ceci:

SessionFactory.EvictQueries(); 
foreach (var collectionMetadata in this._SessionFactory.GetAllCollectionMetadata()) 
     SessionFactory.EvictCollection(collectionMetadata.Key); 
foreach (var classMetadata in this._SessionFactory.GetAllClassMetadata()) 
     SessionFactory.EvictEntity(classMetadata.Key); 
+0

Hé, c'est * mon * bit! ;-) –

+0

Oui, et je l'adore :-) En fait, je savais que je l'avais reçu de quelqu'un mais je ne me rappelais pas que c'était votre. – LeftyX

Questions connexes