2010-02-08 16 views
6

Me preguntaba si era prudente guardar en caché el objeto ObjectContext de Entity Framework en el Cache; ¿Esto me dará problemas con conexiones múltiples al mismo tiempo que el usuario experimentará problemas con eso?ADO.NET Entity Framework ObjectContext - Caching Question

Recibí errores como: 'la conexión está actualmente cerrada' y me pregunté si eso se debía a varios usuarios y almacenando en caché el ObjectContext, o si estaba relacionado con, por ejemplo, pulsando actualizar varias veces o deteniendo la página y haciendo algo rápidamente else (algo que hicimos para obtener el error).

+0

¿Sólo leer información o estás usando el método Save así? – Zyphrax

+0

Yo leo/escribo con él. –

Respuesta

5

No lo aconsejaría. ObjectContext debe estar activo para observar los cambios en las entidades con las que está trabajando activamente o deberá desconectar las entidades activas antes de almacenar en caché el ObjectContext.

Si no tiene entidades activas, no es necesario almacenar en caché un ObjectContext. En EFv1, trabajar con entidades desconectadas era problemático en el mejor de los casos, así que no guardaba en caché ni esperaba el Entity Framework v4, que permite entidades más manejables (entidades de auto-seguimiento, entidades POCO, etc.).

Pensé que agregaría un último punto, varios hilos, también podría ser problemático. La aplicación de cambios intentará confirmar todos los cambios rastreados por ObjectContext. Si varios usuarios comparten un único Contexto ... bueno, con suerte puede ver los problemas ...

+0

Gracias, entonces, sin almacenar en caché el contexto, ¿recomienda separar las entidades devueltas de las consultas también? –

+0

Además, ¿qué ocurre si uso la colección HttpContext.Current.Items, que solo la almacena para la solicitud actual? No estoy seguro si eso es global entre los usuarios, pero ¿es otra preocupación similar? Gracias. –

+0

Perdón por la respuesta tardía, actualmente en el camino. El desacoplamiento podría funcionar siempre que el contexto original esté dispuesto correctamente – RobS

Cuestiones relacionadas