2008-09-03 12 views
7

Esta pregunta está dirigida a un grado en esta pregunta en LINQ to SQL .dbml best practices, pero no estoy seguro de cómo agregar a una pregunta.Gestión de LINQ to SQL complejidad del modelo .dbml

Una de nuestras aplicaciones utiliza LINQ to SQL y actualmente tenemos un archivo .dbml para toda la base de datos que se está volviendo difícil de administrar. Estamos buscando refactorizarlo un poco en archivos separados que son más específicos del módulo/funcionalidad, pero un problema es que muchas de las clases de alto nivel tendrían que duplicarse en varios archivos .dbml, ya que las asociaciones no se pueden usar en todos. archivos dbml (hasta donde yo sé), con el código de clase parcial adicional también.

¿Alguien ha lidiado con este problema y qué recomendaciones haría usted?

Respuesta

0

El enfoque que hemos utilizado para mantener 2 archivos .dbml. Uno de ellos contiene los procesos almacenados y todo el acceso a la base de datos de producción se realiza a través de esto. El otro se encuentra en una carpeta de prueba de unidad y contiene tablas y sus relaciones, y se usa para la manipulación de datos de DB y consultas para pruebas unitarias.

1

Pasado un cierto tamaño, probablemente sea más fácil trabajar con el xml en lugar del diseñador de dbml.

2

Aproveche la configuración del espacio de nombres. Puede acceder a él desde propiedades haciendo clic en el espacio en blanco de la ORM.

Esto me permite tener una tabla de Usuarios y una clase de Usuario para un conjunto de reglas de negocio y una segunda (pero la misma tienda de datos) Usuarios y una Clase de Usuario para otro conjunto de reglas comerciales.

O divida la biblioteca, lo que también debería tener el efecto de cambiar el espacio de nombres según las convenciones de nomenclatura de su empresa. Nunca he trabajado en una aplicación empresarial donde necesitaba acceso a cada una de las tablas.

0

He escrito una utilidad para abordar exactamente ese problema, necesitaba una aplicación rápida que te permitiera seleccionar solo los objetos de la base de datos que necesitas. En mi caso, a menudo necesitaba una vista compleja, pero no tablas.

http://www.codeplex.com/SqlMetalInclude/

+0

el enlace no funciona para mí .... –

1

He escrito una herramienta también! El mío es para crear scripts de los archivos dbml usando C# para que pueda volver a ejecutarlos y no perder los cambios. Ver mi blog http://www.adverseconditionals.com 4 más detalles

+0

Blog parece estar fuera de lugar. –

+0

Saludos. ¡Resulta que no puedo deletrear mi propia dirección de blog! – mcintyre321