Usar Migrações do Code First para propagar o banco de dados

por Mike Wasson

Baixar projeto concluído

Nesta seção, você usará o migrações do Code First no EF para propagar o banco de dados com dado de teste.

No menu ferramentas , selecione Gerenciador de pacotes NuGete, em seguida, selecione console do Gerenciador de pacotes. Na janela Console do Gerenciador de Pacotes, digite o seguinte comando:

Enable-Migrations

Esse comando adiciona uma pasta chamada migrações ao seu projeto, além de um arquivo de código chamado Configuration.cs na pasta Migrations.

Abra o arquivo Configuration.cs. Adicione a seguinte instrução using .

using BookService.Models;

Em seguida, adicione o seguinte código ao método Configuration. semente :

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" }
        );
}

Na janela do console do Gerenciador de pacotes, digite os seguintes comandos:

Add-Migration Initial
Update-Database

O primeiro comando gera o código que cria o banco de dados e o segundo comando executa esse código. O banco de dados é criado localmente, usando o LocalDB.

Explorar a API (opcional)

Pressione F5 para executar o aplicativo em modo de depuração. O Visual Studio inicia IIS Express e executa seu aplicativo Web. Em seguida, o Visual Studio inicia um navegador e abre a home page do aplicativo.

Quando o Visual Studio executa um projeto Web, ele atribui um número de porta. Na imagem abaixo, o número da porta é 50524. Ao executar o aplicativo, você verá um número de porta diferente.

O home page é implementado usando o MVC do ASP.NET. Na parte superior da página, há um link que diz "API". Esse link leva você a uma página de ajuda gerada automaticamente para a API Web. (Para saber como essa página de ajuda é gerada e como você pode adicionar sua própria documentação à página, consulte criando páginas de ajuda para ASP.NET Web API.) Você pode clicar nos links da página de ajuda para ver detalhes sobre a API, incluindo o formato de solicitação e resposta.

A API habilita as operações CRUD no banco de dados. O seguinte resume a API.

Autores
GET api/authors Obter todos os autores.
GET api/authors/{id} Obtenha um autor por ID.
POST /api/authors Crie um novo autor.
PUT /api/authors/{id} Atualizar um autor existente.
DELETE /api/authors/{id} Excluir um autor.
Manuais
GET /api/books Obter todos os livros.
GET /api/books/{id} Obter um livro por ID.
POST /api/books Crie um novo livro.
PUT /api/books/{id} Atualizar um livro existente.
DELETE /api/books/{id} Excluir um livro.

Exibir o banco de dados (opcional)

Quando você executou o comando Update-Database, o EF criou o banco de dados e chamou o método Seed. Quando você executa o aplicativo localmente, o EF usa o LocalDB. Você pode exibir o banco de dados no Visual Studio. No menu Visualizar, selecione Pesquisador de objetos do SQL Server.

No diálogo conectar ao servidor , na caixa de edição nome do servidor , digite "(LocalDB) \v11.0". Deixe a opção de autenticação como "autenticação do Windows". Clique em Conectar.

O Visual Studio se conecta ao LocalDB e mostra os bancos de dados existentes na janela Pesquisador de Objetos do SQL Server. Você pode expandir os nós para ver as tabelas que o EF criou.

Para exibir os dados, clique com o botão direito do mouse em uma tabela e selecione exibir dados.

A captura de tela a seguir mostra os resultados da tabela Books. Observe que o EF populava o banco de dados com o semente data e a tabela contém a chave estrangeira para a tabela authors.