Cómo borrar todo el caché de segundo nivel en NHibernate
-
27-09-2019 - |
Pregunta
Deseo borrar todo el caché de segundo nivel en NHibernate a través de código. ¿Hay una manera de hacer esto que es independiente del proveedor de memoria caché que se utiliza? (Tenemos clientes que utilizan tanto Memcache y syscache dentro de la misma aplicación).
desea borrar toda la memoria caché debido a los cambios externos a la base de datos pueda haber ocurrido (y no tenemos garantías re: qué tablas / entidades se vieron afectados, por lo que tenemos que asumir lo peor)
.Solución
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);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow