Solución de caché para Dapper cuando se utilizan procedimientos almacenados (MSSQL)

asp.net-mvc-3 c#-4.0 dapper sql-server-2008

Pregunta

Estoy utilizando Dapper principalmente para llamar a procedimientos almacenados en la base de datos MSSQL 2008 R2 . No tengo clases que se correlacionen con tablas de la base de datos. La mayoría de los datos terminan en IEnumerable <Dynamic> y se transmiten a la cuadrícula en la pantalla.

¿Existe una solución lista para usar para el buffer de datos que pueda usar? (Necesito usarlo en el MVC).

Los datos en la base de datos son de naturaleza estática y dinámica. Utilizo el modelo de repositorio para acceder a los datos.

Respuesta experta

Dapper no incluye ninguna característica incorporada de almacenamiento en caché de datos (aunque utiliza un caché extenso internamente para la capa de metaprogramación): apunta directamente a las cosas de ADO.NET; sin embargo, puede usar casi cualquier almacenamiento en caché comercial componente, incluida la caché de tiempo de ejecución HTTP ( HttpContext.Current.Cache ) o las implementaciones más recientes de ObjectCache etc. Como estos solo toman objetos, debería funcionar bien.

Si está utilizando un caché distribuido (quizás a través de app-fabric, redis o memcached), entonces necesita que los datos sean serializables. En ese escenario, recomendaría encarecidamente utilizar tipos de POCO formales para el enlace, en lugar de la API dynamic . Como ejemplo, en la empresa usamos dapper para poblar las POCO que están anotadas con marcadores protobuf-net para la serialización, y se almacenan a través de BookSleeve para redis. Lo cual suena más complicado de lo que realmente es.



Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué