Frage

Ich wünsche dem gesamten Cache zweiter Ebene in NHibernate über Code zu löschen. Gibt es eine Möglichkeit, dies zu tun, das die Cache-Provider unabhängig verwendet? (Wir haben Kunden sowohl memcache und syscache innerhalb derselben Anwendung verwendet wird).

Wir wollen den gesamten Cache löschen aufgrund von Änderungen außerhalb der Datenbank aufgetreten sein können (und wir haben keine Garantien wieder: die Tabellen / Einheiten betroffen waren, so dass wir das Schlimmste annehmen müssen)

.
War es hilfreich?

Lösung

Dies sollte tun:

sessionFactory.EvictQueries();
foreach (var collectionMetadata in sessionFactory.GetAllCollectionMetadata())
         sessionFactory.EvictCollection(collectionMetadata.Key);
foreach (var classMetadata in sessionFactory.GetAllClassMetadata())
         sessionFactory.EvictEntity(classMetadata.Key);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top