Uso de las migraciones de Code First para inicializar la base de datos

Descargar el proyecto completado

En esta sección, usará las migraciones de Code First en EF para inicializar la base de datos con datos de prueba.

En el menú Herramientas, seleccione Administrador de paquetes NuGet y, a continuación, Consola del administrador de paquetes. En la ventana Consola del Administrador de paquetas , escriba el siguiente comando:

Enable-Migrations

Este comando agrega una carpeta denominada Migrations al proyecto, además de un archivo de código llamado Configuration.cs en la carpeta Migrations.

Screenshot of the Solution Explorer showing the folder hierarchy with the Configuration dot c s file highlighted in blue.

Abra el archivo Configuration.cs. Agregue la siguiente instrucción using.

using BookService.Models;

Después, agregue el código siguiente al método Configuration.Seed:

protected override void Seed(BookService.Models.BookServiceContext context)
{
    context.Authors.AddOrUpdate(x => x.Id,
        new Author() { Id = 1, Name = "Jane Austen" },
        new Author() { Id = 2, Name = "Charles Dickens" },
        new Author() { Id = 3, Name = "Miguel de Cervantes" }
        );

    context.Books.AddOrUpdate(x => x.Id,
        new Book() { Id = 1, Title = "Pride and Prejudice", Year = 1813, AuthorId = 1, 
            Price = 9.99M, Genre = "Comedy of manners" },
        new Book() { Id = 2, Title = "Northanger Abbey", Year = 1817, AuthorId = 1, 
            Price = 12.95M, Genre = "Gothic parody" },
        new Book() { Id = 3, Title = "David Copperfield", Year = 1850, AuthorId = 2, 
            Price = 15, Genre = "Bildungsroman" },
        new Book() { Id = 4, Title = "Don Quixote", Year = 1617, AuthorId = 3, 
            Price = 8.95M, Genre = "Picaresque" }
        );
}

En la ventana de la consola del administrador de paquetes, escriba los comandos siguientes:

Add-Migration Initial
Update-Database

El primer comando genera código que crea la base de datos y el segundo comando ejecuta ese código. La base de datos se crea localmente mediante LocalDB.

Screenshot of the Package Manager Console window with the Enable Migrations, Add Migration Initial, and Update Database lines circled in red.

Exploración de la API (opcional)

Presione F5 para ejecutar la aplicación en modo de depuración. Visual Studio inicia IIS Express y ejecuta la aplicación web. A continuación, Visual Studio inicia un explorador y abre la página principal de la aplicación.

Cuando Visual Studio ejecuta un proyecto web, asigna un número de puerto. En la imagen siguiente, el número de puerto es el 50524. Cuando ejecute la aplicación, verá un número de puerto diferente.

Screenshot of the application window launched from Visual Studio in debug mode with the A P I link circled in red and highlighted with a red arrow.

La página principal se implementa mediante MVC de ASP.NET. En la parte superior de la página, hay un vínculo que indica "API". Este vínculo le lleva a una página de ayuda generada automáticamente para la API web. (Para obtener información sobre cómo se genera esta página de ayuda y cómo puede agregar su propia documentación a la página, consulte Creación de páginas de ayuda de ASP.NET Web API). Puede hacer clic en los vínculos de la página de ayuda para ver detalles sobre la API, incluido el formato de solicitud y respuesta.

Screenshot of the auto-generated help page showing a list of links to documentation for API features.

La API habilita las operaciones CRUD en la base de datos. A continuación se resume la API.

Autores Descripción
GET api/authors Obtiene todos los autores.
GET api/authors/{id} Obtiene un autor por identificador.
POST /api/authors Crea un nuevo autor.
PUT /api/authors/{id} Actualiza un autor existente.
DELETE /api/authors/{id} Elimina un autor.
Libros Descripción
GET /api/books Obtiene todos los libros.
GET /api/books/{id} Obtiene un libro por identificador.
POST /api/books Crea un libro.
PUT /api/books/{id} Actualiza un libro ya existente.
DELETE /api/books/{id} Elimina un libro.

Visualización de la base de datos (opcional)

Cuando ejecutó el comando Update-Database, EF creó la base de datos y llamó al método Seed. Al ejecutar la aplicación localmente, EF usa LocalDB. Puede ver la base de datos en Visual Studio. En el menú Ver, seleccione Explorador de objetos de SQL Server.

Screenshot of the S Q L Server Object Explorer showing the S Q L Server item highlighted in blue and the Add S Q L Server item highlighted in yellow.

En el cuadro de diálogo Conectar al servidor, en el cuadro de edición Nombre del servidor, escriba "(localdb)\v11.0". Deje la opción Autenticación en "Autenticación de Windows". Haga clic en Conectar.

Screenshot of the Connect to Server dialog showing the text local d b v 11 dot 0 in the Server name field and highlighted in blue.

Visual Studio se conecta a LocalDB y muestra las bases de datos existentes en la ventana Explorador de objetos de SQL Server. Puede expandir los nodos para ver las tablas que EF ha creado.

Screenshot of the S Q L Server Object Explorer showing the folder hierarchy with the Book Service Context item highlighted in blue.

Para ver los datos, haga clic con el botón derecho en la tabla y seleccione Ver datos.

Screenshot of the S Q L Server Object Explorer showing the d b o dot Books item highlighted in blue and the View Data item highlighted in yellow.

En la captura de pantalla siguiente se muestran los resultados de la tabla de libros. Observe que EF ha rellenado la base de datos con los datos de inicialización y la tabla contiene la clave externa para la tabla de autores.

Screenshot of the Books table showing the database populated with seed data and the table containing the foreign key.