Exercício - Usar o provedor de banco de dados SQLite com o EF Core
Até este ponto, você tem salvo seus dados em um banco de dados na memória. Esse banco de dados é fácil de configurar e usar enquanto você desenvolve seu aplicativo, mas os dados não são persistentes. Como resultado, os dados serão perdidos quando o aplicativo for reiniciado. Antes de implantar seu aplicativo, você precisa persistir os dados em um banco de dados.
Neste exercício, você atualizará seu aplicativo para usar um banco de dados relacional para armazenar seus dados. Você usará o SQLite para armazenar seus dados.
Configurar o banco de dados SQLite
Conclua as seções a seguir para configurar o banco de dados SQLite.
Instale as seguintes ferramentas e pacotes
No terminal, instale os seguintes pacotes:
SQLite EF Core Database Provider: Pode acessar muitos bancos de dados diferentes por meio de bibliotecas de plug-in chamadas provedores de banco de dados. O pacote a seguir é o provedor de banco de dados SQLite para o Entity Framework (EF) Core.
dotnet add package Microsoft.EntityFrameworkCore.Sqlite --version 8.0ferramentas do EF Core: As Ferramentas para o EF Core executam tarefas de desenvolvimento durante a fase de design. Por exemplo, eles criam migrações, aplicam migrações e geram código para um modelo com base em um banco de dados existente.
dotnet tool install --global dotnet-efMicrosoft.EntityFrameworkCore.Design: Contém toda a lógica de design do Entity Framework Core para criar o seu banco de dados.
dotnet add package Microsoft.EntityFrameworkCore.Design --version 8.0
Habilitar a criação de banco de dados
Para habilitar a criação do banco de dados, você precisa definir a cadeia de conexão do banco de dados. Em seguida, você migrará seu modelo de dados para um banco de dados SQLite.
No Program.cs, em
var builder = WebApplication.CreateBuilder(args);, adicione uma cadeia de conexão.var connectionString = builder.Configuration.GetConnectionString("Pizzas") ?? "Data Source=Pizzas.db";Este código verifica o fornecedor de configurações para encontrar uma cadeia de conexão chamada Pizzas. Se não encontrar um, ele usará
Data Source=Pizzas.dbcomo a cadeia de conexão. SQLite mapeará essa cadeia de caracteres para um arquivo.Na parte CRUD deste tutorial, você usou um banco de dados na memória. Agora você vai substituir o banco de dados na memória por um banco de dados persistente.
Substitua o seu atual
builder.Services.AddDbContext<PizzaDb>(options => options.UseInMemoryDatabase("items"));de implementação de banco de dados em memória nos seus serviços de build pelo SQLite disponível aqui:builder.Services.AddSqlite<PizzaDb>(connectionString);Com a ferramenta de migração EF Core, agora você pode gerar sua primeira migração,
InitialCreate. Salve todas as alterações e execute o seguinte comando:dotnet ef migrations add InitialCreateO EF Core cria uma pasta Migrações no diretório do projeto que contém dois arquivos com o código que representa as migrações de banco de dados.
Agora que você concluiu a migração, pode usá-la para criar seu banco de dados e esquema.
Em uma janela do terminal, execute o seguinte comando
database updatepara aplicar migrações a um banco de dados:dotnet ef database updateVocê deve ver um arquivo de Pizzas.db recém-criado no diretório do projeto.
Executar e testar o aplicativo
Agora que você tem um banco de dados de backup, suas alterações serão persistentes.
Teste a sua aplicação como antes, usando o dotnet run e o Swagger UI. Pare o aplicativo usando o comando Ctrl+C . Em seguida, execute-o novamente e verifique se as alterações ainda persistem no Pizzas.db.
Parabéns;! Você conectou um banco de dados à sua API mínima!