VS 2010 & .NET Fx 4.0: Model First en ADO.NET Entity Framework 4.0!

Estos días estoy teniendo la oportunidad de “enredar” un poco con la nueva versión de ADO.NET Entity Framework (ADO.NET EF) que vendrá como parte de VS 2010 y .NET Fx 4.0. Entre las novedades de EF 4.0, tenemos la característica “Model First”, es decir, vamos a poder crear primero el Entity Data Model (EDM) y posteriormente generaremos la base de datos (BD) subyacente. Frente a esta característica, la versión 1.0 de EF sólo nos permitía construir un EDM a partir de una BD:

image image

La idea de este post es ver un pequeño paso a paso de como generar en primer lugar el EDM de EF y posteriormente la BD subyacente. Veremos además que la generación de esta BD se puede automatizar gracias a que se crea un workflow de WF 4.0 para ello. Empecemos.

Construyendo el modelo

Lo primero que vamos a hacer es construir el EDM de ADO.NET EF partiendo de la plantilla de modelo en blanco que tenemos disponible en Visual Studio:

  • Añadimos un nuevo elemento a nuestro proyecto de tipo ADO.NET Entity Data Model.
  • En el asistente de creación del modelo, elegimos Empty Model y pulsamos Finish.
  • Lógicamente, el modelo está vacío. Para ir añadiendo entidades al modelo, hacemos clic con el botón derecho del ratón sobre la superficie de diseño y pulsamos Add –> Entity …
image image image
  • En mi caso, voy a añadir dos entidades simples al modelo, que además estén relacionadas (mediante una relacuón 1:N). Básicamente, para cada entidad definiremos en primer lugar el nombre de la misma, su campo clave y el tipo correspondiente. A continuación le añadiremos las propiedades que estimemos oportunas. Para ello, seleccionamos la entidad, hacemos clic con el botón derecho del ratón y pulsamos Add –> Scalar Property. Utilizaremos la ventana de propiedades para su correcta configuración.-

    image image image
  • Para añadir una asociación entre las entidades, seleccionamos una de las entidad origen, hacemos clic con el botón derecho del ratón y pulsamos Add –> Association.
  • En la ventana que se abre, simplemente configuramos como queremos que sea la asociación y pulsamos Ok.
  • De esta forma, ya tendremos definida la asociación entre las dos entidades del modelo.
image image image

Generación de la BD a partir del modelo 

Una vez que hemos construido el EDM de ADO.NET EF, ya estamos listos para generar la BD subyacente. Para ello:

  • Hacemos clic con el botón derecho del ratón sobre la superficie de diseño y pulsamos Generate Database Script from Model…
  • En la ventana que se abre, tendremos que especificar los parámetros de conexión pertinentes a través del botón New Connection…
  • Lógicamente, especificamos el nombre del servidor de BD y el nombre de la BD.
image image image
  • Tras especificar los parámetros de conexión, pulsamos Next.
  • En la siguiente pantalla veremos el conjunto de sentencias SQL que se construyen a partir del EDM para generar la BD subyacente.
  • Tras pulsar Finish, se generará el correspondiente archivo SQL en la solución de Visual Studio con todas las sentencias T-SQL necesarias.
image image image
  • Si nos vamos al SQL Server Management Studio, veremos que la BD se ha creado, pero está vacía por lo que tendremos que ejecutar el script anterior.
  • Otra característica interesante de esta nueva capacidad de ADO.NET EF 4.0 es que además de generar el script T-SQL con la definición de la BD, se crea un workflow de WF 4.0 pensado para automatizar este proceso de creación de la BD.
  • Este workflow aparece en la propiedad Generate Database Script Workflow del EDM. Si buscáis este workflow, lo encontraréis en la ruta siguiente: C:Program FilesMicrosoft Visual Studio 10.0ExtensionsMicrosoftEntityFrameworkToolsWorkflowsDbGen.xaml. Como veis, se trata de n workflow secuencial sencillo que usa dos actividades personalizadas.
image image

Y hasta aquí llega lo que os quería contar sobre Model First en ADO.NET EF 4.0. Espero que el post os haya resultado interesante.

Publicado por

Juan Carlos González

Juan Carlos es Ingeniero de Telecomunicaciones por la Universidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC). Cuenta con más de 12 años de experiencia en tecnologías y plataformas de Microsoft diversas (SQL Server, Visual Studio, .NET Framework, etc.), aunque su trabajo diario gira en torno a SharePoint & Office 365. Juan Carlos es MVP de Office Servers & Services desde 2015 (anteriormente fue reconocido por Microsoft como MVP de Office 365 y MVP de SharePoint Server desde 2008 hasta 2015), coordinador del grupo de usuarios .NET de Cantabria (Nuberos.Net, www.nuberos.es), co-fundador y coordinador del Grupo de Usuarios de SharePoint de España (SUGES, www.suges.es), así como co-director de la revista gratuita en castellano sobre SharePoint CompartiMOSS (www.compartimoss.com). Hasta la fecha, ha publicado 8 libros sobre SharePoint & Office 365 y varios artículos en castellano y en inglés sobre ambas plataformas.

3 comentarios en “VS 2010 & .NET Fx 4.0: Model First en ADO.NET Entity Framework 4.0!”

  1. Buenas Daniel,
    Te recomiendo que sigas el blog de Unai Zorrilla porque es un gran experto en EF y seguro que el irá publicando más posts relativos a estos y otros tópicos.

    Un saludo

    JC’s

  2. Hola Juan Carlos,
    Estoy empezando a introducirme en este mundo de .NET y necesito aprender rápidamente cómo funciona la persistencia.
    Aunque sencillo, tu artículo me ha sido de gran ayuda, ya que no encuentro tutoriales o manuales sencillos de Entity Framework.
    Lo único que no consigo hacer es generar las tablas de la base de datos a partir del modelo.¿Cómo debo ejecutar el script generado?
    Tengo instalado el VS 2010 Beta1 y creo que no me trae SQL Server Management Studio.
    Te agradecería mucho la ayuda.

    Gracias por tu tiempo.
    ITV

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *