En primer lugar, soy Linq a Sql novato, así que sea amable :).Linq a SQL y modelo de base de datos grande
Tengo una aplicación ASP.Net existente desarrollada en los últimos 3.5 años. Tiene un modelo de datos bastante grande debajo, alrededor de 350 tablas. Estoy tratando de hacer algunas cosas nuevas con Linq a SQL.
La primera impresión es que el diseñador de linq y SqlMetal están diseñados para bases de datos no mayores que el ejemplo de NorthWind. Aquí están algunos problemas que tengo:
- tengo tabla
Products
que se necesita en un montón de lugares (inventario, facturación, producción, ...). Si pongo la tablaProducts
en cada archivo dbml, el diseñador de linq creará la claseProduct
en cada uno de ellos. No quiero eso. Quiero una sola claseProduct
. - Tengo DataContext sobre el envío. Necesita alrededor de 40 tablas. Esto hace que el archivo dbml sea muy difícil de administrar. ¿Hay alguna manera de crear archivos dbml más pequeños y luego incluirlos (como referencia) en algún dbml "principal"?
Por el momento, me gusta mucho Linq, pero creo que todavía falta una herramienta de diseño para algo más grande que 10 tablas.
Mi solución ahora es crear modelos más pequeños con el diseñador Linq y luego fusionarlos manualmente (agregando propiedades y referencias), por lo que se generarán muchos códigos, pero también habrá mucho trabajo manual.
¿Echaba de menos algo grande o es este estado de cosas actual con Linq to Sql?
No tengo una respuesta, pero estoy interesado en saber esto también, ya que he notado lo mismo. Los métodos que está usando son lo que pensé que haría si tuviera muchas tablas. – dtc
No entiendo por qué SqlMetal no es la respuesta a su pregunta? Funcionó bien para mí con grandes bases de datos de múltiples tablas. Acabo de conectar un script por lotes al menú "Herramientas externas" en Visual Studio para poder reconstruir el ORM con un solo clic. –
@James McCormack: podría agregar una respuesta y describir cómo se organizan las clases. Lo que me gustaría es tener el inventario de ensamblaje y dentro de unas 20-30 clases que correspondan a la misma cantidad de tablas. Luego ensamble Ventas, luego Finanzas.No encontré una manera fácil de automatizar esto, así que recurrí a esto: crear dbml para un número pequeño de tablas y luego editar código manualmente. ¿Sabes si se ha mejorado SqlMetal for .Net4? – zendar