Estoy tratando de encontrar la mejor estrategia sobre cómo organizar DataContexts. La base de datos típica con la que trabajamos tiene entre 50 y 100 tablas, generalmente en tercera forma normal y con muchas relaciones entre ellas. Creo que tenemos dos opciones:LINQ to SQL multiple DataContext-s
- Coloque todas las tablas en un único contexto. Esto asegurará que todo lo que hagamos se cometerá en el orden correcto en la base de datos. El problema es que el diseñador de LINQ será un desastre con más de 50 tablas y me preocupa que el rendimiento se vea afectado.
- Crea varios contextos de datos basados en la agrupación lógica de tablas. El problema es que habrá lugares donde un lado de una relación estará en un contexto y el otro en otro. Tendremos que encargarnos manualmente de comprometer ambos contextos en el orden correcto.
¿Hay alguna práctica recomendada para manejar esto?
Más detalles:
quiero crear mis propias entidades y unidad de trabajo en la parte superior de LINQ a SQL. Las entidades se definirán en un archivo de modelo xml donde también se especificará la asignación a entidades LINQ. Una herramienta personalizada generará mis entidades (POCO) según el modelo. El código del cliente solo interactuará con mis entidades y mi unidad de trabajo; nunca directamente con las entidades DataContext o LINQ. Sin embargo, no quiero duplicar lo que proporciona LINQ to SQL de forma predeterminada, así que quiero usar el LINQ DataContext subyacente. Esto significa que no puedo tener dos pedidos en diferentes contextos de datos, porque no sería posible mapear mi Orden POCO con ambos.
Pensé en esto, pero una orden desde Context2 no se puede usar en Context3 ... terminará con dos entidades de orden diferentes – Albert
Si el trabajo está separado en unidades, nunca tratarías de usar un objeto de context2 en context3. –
De hecho, quiero implementar POCO y Unidad de trabajo en la parte superior de las entidades LINQ para que el código del cliente funcione con un UnitOfWork que tendrá solo un tipo de órdenes. En su solución propuesta, no sabría qué contexto utilizar para los pedidos – Albert