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 manter 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.
Instalar as seguintes ferramentas e pacotes
No terminal, instale os seguintes pacotes:
Provedor de Banco de Dados SQLite EF Core: pode acessar vários 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: Ferramentas para EF Core realizar tarefas de desenvolvimento de tempo 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 tempo de design do EF Core para criar 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.
Em Program.cs, em
var builder = WebApplication.CreateBuilder(args);, adicione uma cadeia de conexão.var connectionString = builder.Configuration.GetConnectionString("Pizzas") ?? "Data Source=Pizzas.db";Esse código verifica o provedor de configuração em busca de uma cadeia de conexão chamada Pizzas. Se não encontrar um, ele usará
Data Source=Pizzas.dbcomo a cadeia de conexão. 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ê substituirá o banco de dados na memória por um banco de dados persistente.
Substitua a implementação
builder.Services.AddDbContext<PizzaDb>(options => options.UseInMemoryDatabase("items"));atual do banco de dados na memória em seus serviços de build pelo SQLite aqui:builder.Services.AddSqlite<PizzaDb>(connectionString);Com a ferramenta de migração do 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, você pode usá-la para criar seu banco de dados e esquema.
Em uma janela de terminal, execute o seguinte
database updatecomando para 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 mantidas.
Teste seu aplicativo como antes, usando dotnet run e a Swagger UI. Interrompa o aplicativo usando o comando Ctrl+C . Em seguida, execute-o novamente e verifique se as alterações ainda são mantidas em Pizzas.db.
Parabéns! Você conectou um banco de dados à sua API mínima!