2011-03-21 12 views
7
using (var context = new FirstEntities()) 
{ 
    using (var context1 = new SecondEntities()) 
    { 
    } 
} 

Esto funciona pero por alguna razón no "se siente bien" ... ¿Alguien sabe alguna razón válida para no usar declaraciones anidadas usando con entidad marco?¿Alguna razón para no usar anidados usando contextos de entidades EF?

Editar: Mi pregunta es más en la línea si hay un escenario en el que este tipo de anidación podría provocar una excepción o un error de base de datos en lugar de si es aconsejable desde punto de vista arquitectónico ...

Respuesta

11

Por anidación contextos de datos utilizará dos conexiones de base de datos a la vez. Es preferible obtener los datos que necesita de un contexto, cerrar eso y abrir el siguiente y obtener los datos que necesita de ese contexto.

Esto podría significar un poco más de trabajo, ya que tiene que planificar mejor su código, pero también significa que la aplicación tiene una mejor escala.

+0

Gracias, esa es una razón arquitectónica válida para no hacerlo, pero mi pregunta era más parecida si hay un escenario donde este tipo de anidamiento podría causar una excepción o un error en la base de datos ... –

+0

Hmmm ... Vamos a Piénsalo. ¿Podría una aplicación que no se escala bien causar problemas de conectividad a la base de datos? Hmmm ... ;-) –

+2

@kzen: No, esto normalmente no causa errores. Por supuesto, podría crear un escenario en el que ambas entidades usen la misma tabla, y hacer cambios en una de ellas ocasionaría errores o resultados inconsistentes para la otra. – Guffa

Cuestiones relacionadas