Me gustaría almacenar en caché la mayoría de las acciones pesadas de la base de datos en mi sitio asp.net-mvc. En mi investigación he encontradoAlmacenamiento en caché en asp.net-mvc
- donut caching en el blog de Phil
- Caching/compressing filtros en el blog de Kazi
- de podcast de Scott Hansleman acerca de cómo se almacenan en caché las cosas en SO.
Pero no creo que lo tenga todavía.
Quiero poder guardar en caché mi solicitud POST dependiendo de varios pares. Estos pares están en un objeto. Así que me gustaría para almacenar en caché el resultado de la petición siguiente:
public ActionResult AdvancedSearch(SearchBag searchBag)
Dónde searchBag es un objeto que tiene (un montón) de los parámetros de búsqueda opcionales. Mis vistas en sí mismas son ligeras (como deberían ser), pero el acceso a los datos puede consumir bastante tiempo, dependiendo de qué campos se llenen en la bolsa de búsqueda.
Tengo la sensación de que debería almacenar en caché mi capa de datos, en lugar de mis acciones.
¿Cómo se supone que debo usar VaryByParam en el atributo OutputCache?
¿Has probado con VaryByParam = "searchBag.property"? –
no, no tengo. Intentare lo que dices. Pero, ¿qué hay de enumerar varios parámetros? –
VaryByParam = "firstParam; secondParam; thirdParam" –