Cómo borrar toda la caché de segundo nivel en NHibernate


Deseo borrar toda la caché de segundo nivel en NHibernate a través de código. ¿Hay alguna forma de hacer esto que sea independiente del proveedor de caché que se esté utilizando? (tenemos clientes que usan memcache y syscache dentro de la misma aplicación).

Queremos borrar toda la caché debido a cambios externos a la base de datos pueden haber ocurrido (y no tenemos garantías re: qué tablas/entidades se vieron afectadas, por lo que tenemos que asumir lo peor).

Author: Bittercoder, 2010-04-18

1 answers

Esto debería hacer:

sessionFactory.EvictQueries();
foreach (var collectionMetadata in sessionFactory.GetAllCollectionMetadata())
         sessionFactory.EvictCollection(collectionMetadata.Key);
foreach (var classMetadata in sessionFactory.GetAllClassMetadata())
         sessionFactory.EvictEntity(classMetadata.Key);
 36
Author: Diego Mijelshon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-04-18 04:17:29