Saltar al contenido

Artículos, tutoriales, trucos, curiosidades, reflexiones y links sobre programación web ASP.NET Core, MVC, Blazor, SignalR, Entity Framework, C#, Azure, Javascript... y lo que venga ;)

17 años online

el blog de José M. Aguilar

Inicio El autor Contactar

Artículos, tutoriales, trucos, curiosidades, reflexiones y links sobre programación web
ASP.NET Core, MVC, Blazor, SignalR, Entity Framework, C#, Azure, Javascript...

¡Microsoft MVP!
martes, 26 de junio de 2012
Modelo extenso de EF (tomado de http://mattduffield.wordpress.com/2011/06/23/working-with-large-entity-framework-models-in-visual-studio/)Los que hayáis tratado con modelos extensos en Entity Framework seguro que habéis sufrido bastante con Visual Studio 2010, puesto que las entidades y relaciones las representábamos obligatoriamente en un único diagrama y esto dificultaba enormemente su legibilidad y mantenimiento.


De hecho, modelo conceptual y diagrama eran una misma cosa: las entidades y relaciones mostradas a nivel visual en un diagrama eran todas las que formaban parte del modelo de datos, y viceversa.

Pues bien, esto se va a acabar con la próxima versión del entorno de desarrollo: Visual Studio 2012 incluye la posibilidad de crear más de un diagrama por cada modelo de datos (.edmx).

O en otras palabras, sobre el mismo modelo conceptual podemos crear tantos diagramas como necesitemos, y en cada uno de ellos incluir las entidades y relaciones que nos interesen. Por ejemplo, podemos tener un modelo conceptual con las entidades A, B, C, y D y crear dos diagramas, mostrando en el primero de ellos las entidades A, B y C y en el segundo las entidades A y D.
Pero ojo, que no añade ninguna ventaja desde el punto de vista de la codificación; simplemente es una ayuda para organizar los diagramas, seguiremos trabajando con un único contexto de datos.

Para no introducir ningún cambio rompedor, Visual Studio se comportará como hasta ahora cuando incluimos un modelo de datos en nuestra aplicación. Las herramientas para hacerlo son prácticamente idénticas, y al finalizar veremos el diagrama generado por defecto, que por supuesto incluye todas las entidades si hemos decidido hacerlo partiendo de una base de datos:

Creación de diagrama por defecto

De esta forma, en sistemas simples que no valga la pena “trocear” el modelo, o en proyectos migrados desde versiones anteriores de Visual Studio todo seguirá funcionando igual que hasta ahora y no apreciaremos cambios.

Model browserDonde notaréis la desvinculación del modelo conceptual y los diagramas es al acceder al Model Browser, en el que la sección “Diagrams” aparece claramente separada del resto de elementos, como podéis observar en la captura de pantalla adjunta. Esto no existía en Visual Studio 2010.

Las entidades que aparecen vinculadas a un diagrama concreto son aquellas representadas en el mismo, un subconjunto de las disponibles en el modelo completo, que podéis observar en la sección “Model > Entity Types”.

Tenemos varias fórmulas para añadir diagramas al modelo. La más sencilla es seleccionar una o varias entidades desde un diagrama existente (por ejemplo, el generado inicialmente al añadir un modelo de datos) y seleccionar la opción “Move to new diagram”:

Mover entidades a nuevo diagrama

También podemos, desde el mismo Model browser, abrir el menú contextual sobre la carpeta “Diagrams” y seleccionar la opción “Add new diagram”. Una vez creado, podemos arrastrar sobre la superficie de diseño entidades disponibles en la sección “Entity Types”:

Arrastrando entidades sobre un diagrama

Tras arrastrar las entidades del modelo al diagrama, ya aparecerán vinculadas al mismo en el Model Browser, colgando de la entrada “Diagram 2” de la sección de diagramas.

Fijaos que las entidades Role y User del ejemplo están incluidas en ambos diagramas, aunque en realidad se trata de simples referencias hacia la entidad definida a nivel de modelo. Por tanto, si desde cualquier punto modificamos una entidad, los cambios serán reflejados en todos los diagramas que las incluyan.

Otro punto en el que notaremos diferencias respecto a la versión anterior de Visual Studio (y EF) es al eliminar entidades de un diagrama. De hecho, como podéis observar en la siguiente captura de pantalla, ahora tenemos dos opciones para eliminar una entidad: quitarla del diagrama actual pero manteniéndola en el modelo (atajo: tecla Supr), o quitarla del modelo conceptual y de todos los diagramas que la incluyan (Mays+Supr):

Eliminación de entidades de un diagrama
En fin, una característica muy esperada en Entity Framework, y que seguro que nos ayuda cuando más lo necesitamos, en sistemas con modelos de cierto volumen y complejidad.

Publicado en Variable not found.

2 Comentarios:

Davideveloper dijo...

Hola oye pero mi proyecto no tiene extension edmx lo que pasa es que es mvc 4 y tiene extension .db y no me da ninguna opcion de la que mecionas puedes ayudarme

José María Aguilar dijo...

Hola,

en realidad no tiene nada que ver con el tipo de proyecto, los EDMX son simplemente diagramas de Entity Framework. Esa extensión ".db" la verdad es que no sé qué es, pero suena más a un archivo de datos de SQLite o similar... poco más puedo decirte al respecto :(

Saludos!