Model First

Este vídeo y el tutorial paso a paso proporcionan una introducción al desarrollo de Model First mediante Entity Framework. Model First permite crear un nuevo modelo mediante el Diseñador de Entity Framework y, a continuación, generar un esquema de base de datos a partir del modelo. El modelo se almacena en un archivo EDMX (extensión .edmx) y se puede ver y editar en el Diseñador de Entity Framework. Las clases con las que interactúa en la aplicación se generan automáticamente a partir del archivo EDMX.

Ver el vídeo

Este vídeo y el tutorial paso a paso proporcionan una introducción al desarrollo de Model First mediante Entity Framework. Model First permite crear un nuevo modelo mediante el Diseñador de Entity Framework y, a continuación, generar un esquema de base de datos a partir del modelo. El modelo se almacena en un archivo EDMX (extensión .edmx) y se puede ver y editar en el Diseñador de Entity Framework. Las clases con las que interactúa en la aplicación se generan automáticamente a partir del archivo EDMX.

Presentado por: Rowan Miller

Vídeo: WMV | MP4 | WMV (ZIP)

Requisitos previos

Tendrá que tener instalado Visual Studio 2010 o Visual Studio 2012 para completar este tutorial.

Si usa Visual Studio 2010, también deberá tener NuGet instalado.

1. Crear la aplicación

Para simplificar las cosas, vamos a crear una aplicación de consola básica que use Model First para realizar el acceso a datos:

  • Abra Visual Studio.
  • Archivo - > Nuevo - > Proyecto
  • Seleccione Windows en el menú de la izquierda y Aplicación de consola
  • Escriba ModelFirstSample como nombre
  • Seleccione Aceptar.

2. Crear modelo

Vamos a usar el Diseñador de Entity Framework, que se incluye como parte de Visual Studio, para crear nuestro modelo.

  • Proyecto -> Agregar nuevo elemento...

  • Seleccione Datos en el menú de la izquierda y, a continuación, ADO.NET Entity Data Model

  • Escriba BloggingModel como nombre y haga clic en Aceptar; esto iniciará el Asistente para Entity Data Model.

  • Seleccione Modelo vacío y haga clic en Finalizar

    Create Empty Model

El Diseñador de Entity Framework se abre con un modelo en blanco. Ahora podemos empezar a agregar entidades, propiedades y asociaciones al modelo.

  • Haga clic con el botón derecho en la superficie de diseño y seleccione Propiedades

  • En la ventana Propiedades, cambie el nombre del Contenedor de entidades a BloggingContextEste es el nombre del contexto derivado que se generará automáticamente, el contexto representa una sesión con la base de datos, lo que nos permite consultar y guardar datos

  • Haga clic con el botón derecho en la superficie de diseño y seleccione Agregar nueva -> Entidad...

  • Escriba Blog como nombre de la entidad y BlogId como nombre de clave y haga clic en Aceptar

    Add Blog Entity

  • Haga clic con el botón derecho en la nueva entidad en la superficie de diseño y seleccione Agregar nueva -> Propiedad escalar, escriba Nombre como nombre de la propiedad.

  • Repita este proceso para agregar una propiedad Url.

  • Haga clic con el botón derecho en la propiedad Url de la superficie de diseño y seleccione Propiedades, en la ventana Propiedades, cambie el valor que admite un valor NULL a TrueEsto nos permite guardar un blog en la base de datos sin asignarle una dirección URL

  • Con las técnicas que acaba de aprender, agregue una entidad Post con una propiedad de clave PostId

  • Agregue las propiedades escalares Title y Content a la entidad Post

Ahora que tenemos un par de entidades, es el momento de agregar una asociación (o relación) entre ellas.

  • Haga clic con el botón derecho en la superficie de diseño y seleccione Agregar nueva -> Asociación...

  • Hacer que un extremo de la relación apunte a Blog con una multiplicidad deOne y el otro punto final aPostcon una multiplicidad deMuchos Esto significa que un blog tiene muchas entradas y una entrada pertenece a un blog

  • Asegúrese de que la casilla Agregar propiedades de clave externa a la entidad "Post" está activada y haga clic en Aceptar

    Add Association MF

Ahora tenemos un modelo sencillo desde el que podemos generar una base de datos y usarla para leer y escribir datos.

Model Initial

Pasos adicionales en Visual Studio 2010

Si trabaja en Visual Studio 2010, hay algunos pasos adicionales que debe seguir para actualizar a la versión más reciente de Entity Framework. La actualización es importante porque proporciona acceso a una superficie de API mejorada, que es mucho más fácil de usar, así como las correcciones de errores más recientes.

En primer lugar, es necesario obtener la versión más reciente de Entity Framework desde NuGet.

  • Proyecto –> Administrar paquetes NuGet...Si no tiene la opción Administrar paquetes NuGet... debe instalar la versión más reciente de NuGet
  • Seleccione la pestaña En línea
  • Seleccione el paquete EntityFramework
  • Haz clic en Instalar

A continuación, es necesario intercambiar nuestro modelo para generar código que use la API DbContext, que se introdujo en versiones posteriores de Entity Framework.

  • Haga clic con el botón derecho en un lugar vacío del modelo en EF Designer y seleccione Agregar elemento de generación de código...

  • Seleccione Plantillas en línea en el menú de la izquierda y busque DbContext

  • Seleccione el Generador DbContext de EF 5.x para C#, escriba BloggingModel como nombre y haga clic en Agregar

    DbContext Template

3. Generación de la base de datos

Dado nuestro modelo, Entity Framework puede calcular un esquema de base de datos que nos permitirá almacenar y recuperar datos mediante el modelo.

El servidor de base de datos instalado con Visual Studio es diferente en función de la versión de Visual Studio que haya instalado:

  • Si usa Visual Studio 2010, va a crear una base de datos SQL Express.
  • Si usa Visual Studio 2012, creará una base de datos LocalDB.

Vamos a continuar y generar la base de datos.

  • Haga clic con el botón derecho en la superficie de diseño y seleccione Generar base de datos desde modelo...

  • Haga clic en Nueva conexión... y especifique LocalDB o SQL Express, en función de la versión de Visual Studio que use, escriba ModelFirst.Blogging como nombre de la base de datos.

    LocalDB Connection MF

    Sql Express Connection MF

  • Seleccione Aceptar y se le preguntará si desea crear una nueva base de datos, seleccione

  • Seleccione Siguiente y el Diseñador de Entity Framework calculará un script para crear el esquema de la base de datos

  • Una vez que se muestre el script, haga clic en Finalizar y el script se agregará al proyecto y se abrirá

  • Haga clic con el botón derecho en el script y seleccione Ejecutar, se le pedirá que especifique la base de datos a la que conectarse, especifique LocalDB o SQL Server Express, en función de la versión de Visual Studio que use

4. Leer y escribir datos

Ahora que tenemos un modelo, es el momento de usarlo para acceder a algunos datos. Las clases que vamos a usar para acceder a los datos se generan automáticamente en función del archivo EDMX.

Esta captura de pantalla procede de Visual Studio 2012, si usa Visual Studio 2010, los archivos BloggingModel.tt y BloggingModel.Context.tt estarán directamente en el proyecto en lugar de anidados en el archivo EDMX.

Generated Classes

Implemente el método Main en Program.cs como se muestra a continuación. Este código crea una nueva instancia de nuestro contexto y, a continuación, la usa para insertar un nuevo blog. A continuación, usa una consulta LINQ para recuperar todos los blogs de la base de datos ordenados alfabéticamente por Title.

class Program
{
    static void Main(string[] args)
    {
        using (var db = new BloggingContext())
        {
            // Create and save a new Blog
            Console.Write("Enter a name for a new Blog: ");
            var name = Console.ReadLine();

            var blog = new Blog { Name = name };
            db.Blogs.Add(blog);
            db.SaveChanges();

            // Display all Blogs from the database
            var query = from b in db.Blogs
                        orderby b.Name
                        select b;

            Console.WriteLine("All blogs in the database:");
            foreach (var item in query)
            {
                Console.WriteLine(item.Name);
            }

            Console.WriteLine("Press any key to exit...");
            Console.ReadKey();
        }
    }
}

Ahora puede ejecutar la aplicación y probarla.

Enter a name for a new Blog: ADO.NET Blog
All blogs in the database:
ADO.NET Blog
Press any key to exit...

5. Tratar con cambios de modelo

Ahora es el momento de realizar algunos cambios en nuestro modelo. Cuando realizamos estos cambios, también es necesario actualizar el esquema de la base de datos.

Comenzaremos agregando una nueva entidad User al modelo.

  • Agregue un nuevo nombre de entidad de User con Username como nombre de clave y Cadena como tipo de propiedad para la clave

    Add User Entity

  • Haga clic con el botón derecho en la propiedad Username en la superficie de diseño y seleccione Propiedades, en la ventana Propiedades, cambie el valor MaxLength a 50Esto restringe los datos que se pueden almacenar en el nombre de usuario a 50 caracteres

  • Agregue una propiedad escalar DisplayName a la entidad User

Ahora tenemos un modelo actualizado y estamos listos para actualizar la base de datos para dar cabida a nuestro nuevo tipo de entidad User.

  • Haga clic con el botón derecho en la superficie de diseño y seleccione Generar base de datos a partir del modelo..., Entity Framework calculará un script para volver a crear un esquema basado en el modelo actualizado.
  • Haga clic en Finish (Finalizar).
  • Puede recibir advertencias sobre cómo sobrescribir el script DDL existente y las partes de asignación y almacenamiento del modelo, haga clic en para ambas advertencias
  • El script SQL actualizado para crear la base de datos se abre automáticamente
    El script que se genera quitará todas las tablas existentes y, a continuación, volverá a crear el esquema desde cero. Esto puede funcionar para el desarrollo local, pero no es viable para insertar cambios en una base de datos que ya se ha implementado. Si necesita publicar cambios en una base de datos que ya se ha implementado, deberá editar el script o usar una herramienta de comparación de esquemas para calcular un script de migración.
  • Haga clic con el botón derecho en el script y seleccione Ejecutar, se le pedirá que especifique la base de datos a la que conectarse, especifique LocalDB o SQL Server Express, en función de la versión de Visual Studio que use

Resumen

En este tutorial hemos visto el desarrollo de Model First, que nos permitió crear un modelo en el Diseñador de EF y, a continuación, generar una base de datos a partir de ese modelo. A continuación, usamos el modelo para leer y escribir algunos datos de la base de datos. Por último, hemos actualizado el modelo y, a continuación, hemos vuelto a crear el esquema de base de datos para que coincida con el modelo.