2009-01-19 11 views
21

No estoy tan claro sobre las mejores prácticas sobre el uso y la reutilización de la entidad-framework Context.¿Debo compartir el contexto Entidad-Marco o crear un nuevo contexto para cada operación?

Mi pregunta es, ¿debería intentar crear 1 contexto y volver a utilizarlo muchas veces para diferentes consultas o debería crear un nuevo contexto para cada consulta?

Por ejemplo, si tengo un formulario con 10 gráficos, todos con datos consultados de las mismas tablas, ¿deberían las 10 consultas ser de un contexto o 10 contextos diferentes?

Desde un punto de vista de encapsulación de código, preferiría crear 10 contextos nuevos, ¿es esta una buena idea y es escalable?

Respuesta

10

Todo depende de su aplicación.

Una consideración clave es que ObjectContext no es seguro para las roscas, por lo que para una aplicación web ObjectContext por solicitud es el camino a seguir.

Para una aplicación de Win Forms puede considerar tener ObjectContexts de mayor duración. Sin embargo, si prefiere enfocar las cosas con más detalle, lo intentaría primero en lugar de optimizarlo prematuramente.

Más sobre Danny Simmons blog here.

+0

Gracias por el enlace, brindó la información que necesito para sentirme cómodo creando diferentes contextos para la situación en mi pregunta. Además, no había notado el método Detach antes, así que será útil para futuros proyectos. – Rhys

2

mi humilde opinión - Podría estar equivocado, pero así es como lo hago ...

Si está hablando del modelo - Contexto utilice uno. Dado que solo necesita un Modelo - Contexto en el que consultar - es decir, este es el modelo de la base de datos.

Si está hablando de ObjectContext, entonces uno para cada consulta (Linq). Tome esta decisión Performance Considerations for Entity Framework

+0

Un enlace muy bueno, ha ayudado a aliviar algunos temores sobre el rendimiento al crear muchos contextos. – Rhys

Cuestiones relacionadas