Usar Migrações do Code First para propagar o banco de dados
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.
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.
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.
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.
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.
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.
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.
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 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.