Model First

En este vídeo y tutorial paso a paso se proporciona una introducción al Model First desarrollo mediante Entity Framework. Model First permite crear un nuevo modelo mediante el Entity Framework Designer 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 Entity Framework Designer. Las clases con las que interactúa en la aplicación se generan automáticamente a partir del archivo EDMX.

Visualización del vídeo

En este vídeo y tutorial paso a paso se proporciona una introducción al Model First desarrollo mediante Entity Framework. Model First permite crear un nuevo modelo mediante el Entity Framework Designer 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 Entity Framework Designer. 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:WMVMP4WMV (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. Creación de la aplicación

Para que todo sea sencillo, vamos a compilar una aplicación de consola básica que use el Model First para realizar el acceso a datos:

  • Apertura de Visual Studio
  • Archivo - Nuevo > : Project...
  • Seleccione Windows en el menú izquierdo y Aplicación de consola.
  • Escriba ModelFirstSample como nombre.
  • Seleccione Aceptar.

2. Crear modelo

Vamos a hacer uso de Entity Framework Designer, que se incluye como parte de Visual Studio, para crear nuestro modelo.

  • Project : 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,lo que inicia el Asistente para Entity Data Model.

  • Seleccione Empty Model (Modelo vacío) y haga clic en Finish (Finalizar).

    Creación de un modelo vacío

El Entity Framework Designer 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 el ventana Propiedades cambiar 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 dedatos, 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 entidad y BlogId como nombre de clave y haga clic en Aceptar.

    Agregar entidad de blog

  • Haga clic con el botón derecho en la nueva entidad en la superficie de diseño y seleccione Agregar nueva propiedad escalar y 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 en la superficie de diseño y seleccione Propiedades , en el ventana Propiedades cambie el valor que acepta valores NULL a True.Esto nos permite guardar un blog en la base de datos sin asignarle una direcciónURL.

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

  • Agregar propiedades escalaresTitle 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 nuevo - Asociación...

  • Hacer que un extremo de la relación apunte a Blog con una multiplicidad de uno y el otro punto final para publicar con una multiplicidad de varios Esto significa que un blog tiene muchas entradas y una publicación pertenece a unblog.

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

    Agregar asociación MF

Ahora tenemos un modelo simple que podemos generar una base de datos a partir de y usar para leer y escribir datos.

Modelo inicial

Pasos adicionales de Visual Studio 2010

Si está trabajando 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 a las correcciones de errores más recientes.

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

  • Project: administración de NuGet paquetes...Si no tiene la opción Administrar NuGet paquetes... debe instalar la versión más reciente de NuGet
  • Seleccione la pestaña Online (En línea).
  • Selección del paquete EntityFramework
  • Haz clic en Instalar

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

  • Haga clic con el botón derecho en un punto 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 de DbContext de EF 5.x para C#,escriba BloggingModel como nombre y haga clic en Agregar.

    Plantilla de DbContext

3. Generar 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 que se instala 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, va a crear una base de LocalDB datos.

Vamos a continuar y a generar la base de datos.

  • Haga clic con el botón derecho en la superficie de diseño y seleccione Generar base de datos a partir del 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 Sí.

  • Seleccione Siguiente y el Entity Framework Designer calculará un script para crear el esquema de 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 se va a conectar, especifique LocalDB o SQL Server Express, en función de la versión de Visual Studio que esté usando.

4. Lectura de & datos de escritura

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 es 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 estar anidados en el archivo EDMX.

Clases generadas

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 Título.

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 los cambios del modelo

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

Comenzaremos agregando una nueva entidad User a nuestro modelo.

  • Agregue un nuevo nombre de entidad De usuario con Nombre de usuario como nombre de clave y Cadena como tipo de propiedad para la clave.

    Agregar entidad de usuario

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

  • Agregar 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 la sobrescritura del script DDL existente y las partes de asignación y almacenamiento del modelo. Haga clic en para ambas advertencias.
  • El script SQL 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 se va a conectar, especifique LocalDB o SQL Server Express, en función de la versión de Visual Studio que esté usando.

Resumen

En este tutorial se ha visto Model First desarrollo, que nos ha permitido crear un modelo en EF Designer y, a continuación, generar una base de datos a partir de ese modelo. A continuación, se usa el modelo para leer y escribir algunos datos de la base de datos. Por último, actualizamos el modelo y, a continuación, hemos recreado el esquema de base de datos para que coincida con el modelo.