Compartilhar via


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

Baixar Projeto Concluído

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

No menu Ferramentas , selecione Gerenciador de Pacotes NuGet e, 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 Migrações.

Captura de tela do Gerenciador de Soluções mostrando a hierarquia de pastas com o arquivo dot c s de configuração realçado em azul.

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

using BookService.Models;

Em seguida, adicione o seguinte código ao 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" }
        );
}

Na janela 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 LocalDB.

Captura de tela da janela Console do Gerenciador de Pacotes com as linhas Habilitar Migrações, Adicionar Inicialização de Migração e Atualizar Banco de Dados circuladas em vermelho.

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.

Captura de tela da janela do aplicativo iniciada do Visual Studio no modo de depuração com o link A P I circulado em vermelho e realçado com uma seta vermelha.

A home page é implementada usando ASP.NET MVC. Na parte superior da página, há um link que diz "API". Este 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.

Captura de tela da página de ajuda gerada automaticamente mostrando uma lista de links para a documentação dos recursos da API.

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

Autores Descrição
API/autores GET Obtenha todos os autores.
GET api/authors/{id} Obtenha um autor por ID.
POST /api/authors Crie um novo autor.
PUT /api/authors/{id} Atualize um autor existente.
DELETE /api/authors/{id} Exclua um autor.
Manuais Descrição
GET /api/books Pegue todos os livros.
GET /api/books/{id} Obtenha 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 Seed método . 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.

Captura de tela do servidor S Q L Pesquisador de Objetos mostrando o item do Servidor S Q L realçado em azul e o item Adicionar Servidor Q L S realçado em amarelo.

Na caixa de diálogo Conectar ao Servidor , na caixa de edição Nome do Servidor , digite "(localdb)\v11.0". Deixe a opção Autenticação como "Autenticação do Windows". Clique em Conectar.

Captura de tela da caixa de diálogo Conectar ao Servidor mostrando o texto local d b v 11 ponto 0 no campo Nome do servidor e realçado em azul.

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

Captura de tela do servidor S Q L Pesquisador de Objetos mostrando a hierarquia de pastas com o item Contexto do Serviço de Livro realçado em azul.

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

Captura de tela do servidor S Q L Pesquisador de Objetos mostrando o item d b o dot Books realçado em azul e o item Exibir Dados realçado em amarelo.

A captura de tela a seguir mostra os resultados da tabela Livros. Observe que o EF preencheu o banco de dados com os dados de semente e a tabela contém a chave estrangeira para a tabela Authors.

Captura de tela da tabela Livros mostrando o banco de dados preenchido com dados de semente e a tabela que contém a chave estrangeira.