Acabo de empezar a pensar en utilizar la memoria caché de segundo nivel de NHibernate en una de mis aplicaciones. Probablemente usaría el NHibernate.Caches.SysCache.SysCacheProvider
que se basa en el caché de ASP.net.Eliminando objetos de la memoria caché de segundo nivel NHibernate
Habilitar la caché no fue un problema, pero me pregunto cómo administrar la caché e. gramo. eliminando mediante programación determinadas entidades del caché, etc.
Mi aplicación es algún tipo de base de datos de imágenes. El usuario carga imágenes en un backend y puede verlas en la interfaz accediendo a /ImageDb/Show?userId=someUserId
Los datos no cambian con mucha frecuencia. Y si cambia, los usuarios no importarían un botón llamado "borrar mi caché" en el backend que elimina los objetos en caché para este usuario de la caché.
Encontré una solución en línea que puede eliminar todos los objetos en caché de nhibernates caché de segundo nivel. Pero eso es un poco demasiado brutal para mí ... No quiero borrar todo el caché para docenas de usuarios solo porque un usuario intentó borrar el caché para sus propios datos.
Lo que básicamente quería hacer: eliminar selectivamente los objetos db almacenados en caché de nhibernates caché de segundo nivel en C#.
¿Esto es posible? Supongo que también depende del proveedor de caché. Si esto no es factible con el proveedor de caché de ASP.net, estoy abierto para otras sugerencias de fuente incorporada/abierta.
Sé que probablemente no sea relevante ahora, pero tenga en cuenta que su esquema de URI es incorrecto. Debería ser Users/[Id]/ImageDB/Show –
@the_drow - a menos que la aplicación se llame ImageDb :) Todavía tienes la mayoría de la razón, solo tienes que cambiar ImageDB a/Images o algo –
@LukeSchafer: escribí ImageDb solo porque el OP lo usa. –