Cómo hacer que Entity Framework cachee algunos objetos

.net entity entity-framework

Pregunta

Estoy usando Entity Framework.

En mi base de datos se almacenan personas y país de origen. Cuando estoy cargando un objeto de persona, no quiero saber cuál es el lugar donde se origina cada persona. ¿Hay alguna forma de almacenar en caché la lista de países para que no haya solicitudes innecesarias?

Respuesta aceptada

Como Luhmann ya ha dicho, mi compañero Jarek tiene un excelente proveedor de Caching de muestra para Entity Framework. De lo que habla aquí .

Sin embargo, a veces este enfoque es excesivo, y sospecho que el almacenamiento en caché de países es un buen ejemplo donde el esfuerzo no vale la pena. Tal vez sea mejor implementar algún tipo de almacenamiento en caché ad-hoc.

Si intenta hacer esto, el principal problema con el que se encontrará es que una entidad de Entity Framework de instancia solo puede asociarse a un ObjectContext a la vez, lo que significa que si recibe solicitudes simultáneas (como en un sitio web), tendrá problemas. solo tomas elementos del caché y los usas a ciegas.

Lo que necesita es un caché de clonación, es decir, cuando toma algo del caché, los clona.

Preparé una sugerencia que ilustra cómo hacer esto. Sugerencia 14: cómo almacenar en caché los datos de referencia de Entity Framework

Espero que esto ayude

Alex James

Entity Framework Team Microsoft.


Respuesta popular

Puede echar un vistazo a las excelentes envolturas del proveedor de seguimiento y almacenamiento en caché de Jaroslaw Kowalski para Entity Framework .



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é