Øvelse – Brug SQLite-databaseprovideren med EF Core
Indtil nu har du gemt dine data i en database i hukommelsen. Denne database er nem at konfigurere og bruge, mens du udvikler dit program, men dataene er ikke vedvarende. Derfor går dataene tabt, når programmet genstartes. Før du installerer dit program, skal du bevare dataene i en database.
I denne øvelse skal du opgradere dit program for at bruge en relationsdatabase til at gemme dine data. Du skal bruge SQLite til at gemme dine data.
Konfigurer SQLite-databasen
Udfyld følgende afsnit for at konfigurere SQLite-databasen.
Installér følgende værktøjer og pakker
Installer følgende pakker i terminalen:
SQLite EF Core-databaseprovider: Kan få adgang til mange forskellige databaser via plug-in-biblioteker, der kaldes databaseprovidere. Følgende pakke er SQLite-databaseprovideren for Entity Framework (EF) Core.
dotnet add package Microsoft.EntityFrameworkCore.Sqlite --version 8.0EF Core-værktøjer: Værktøjer til EF Core udfører designtidsudviklingsopgaver. De opretter f.eks. migreringer, anvender migreringer og genererer kode for en model baseret på en eksisterende database.
dotnet tool install --global dotnet-efMicrosoft.EntityFrameworkCore.Design: Indeholder al designtidslogik for EF Core til oprettelse af databasen.
dotnet add package Microsoft.EntityFrameworkCore.Design --version 8.0
Aktivér oprettelse af database
Hvis du vil aktivere databaseoprettelse, skal du angive databaseforbindelsesstrengen. Derefter skal du overføre din datamodel til en SQLite-database.
Tilføj en forbindelsesstreng under i
var builder = WebApplication.CreateBuilder(args);.var connectionString = builder.Configuration.GetConnectionString("Pizzas") ?? "Data Source=Pizzas.db";Denne kode kontrollerer konfigurationsprovideren for en forbindelsesstreng med navnet Pizzas. Hvis den ikke kan finde en, bruges
Data Source=Pizzas.dbsom forbindelsesstreng. SQLite knytter denne streng til en fil.I CRUD-delen af dette selvstudium brugte du en database i hukommelsen. Nu skal du erstatte databasen i hukommelsen med en vedvarende database.
Erstat den aktuelle implementering af databasen i hukommelsen
builder.Services.AddDbContext<PizzaDb>(options => options.UseInMemoryDatabase("items"));i dine buildtjenester med SQLite-filen her:builder.Services.AddSqlite<PizzaDb>(connectionString);Med EF Core-overførselsværktøjet kan du nu generere din første migrering
InitialCreate. Gem alle dine ændringer, og kør derefter følgende kommando:dotnet ef migrations add InitialCreateEF Core opretter en mappe med migreringer i projektmappen, der indeholder to filer med den kode, der repræsenterer databaseoverførslen.
Nu, hvor du har fuldført overførslen, kan du bruge den til at oprette din database og dit skema.
Kør følgende
database updatekommando i et terminalvindue for at anvende migreringer på en database:dotnet ef database updateDu bør kunne se en nyoprettet Pizzas.db fil i projektmappen.
Kør og test programmet
Nu, hvor du har en sikkerhedskopidatabase, bevares ændringerne.
Test dit program, som før du bruger dotnet run og Swagger-brugergrænsefladen. Stop programmet ved hjælp af kommandoen Ctrl+C. Kør den derefter igen, og kontrollér, at ændringerne stadig er bevaret i Pizzas.db.
Tillykke! Du har overført en database til din minimal API!