Övning – Använda SQLite-databasprovidern med EF Core
Hittills har du sparat dina data i en minnesintern databas. Den här databasen är enkel att konfigurera och använda när du utvecklar ditt program, men data är inte beständiga. Därför går data förlorade när programmet startas om. Innan du distribuerar ditt program måste du spara data till en databas.
I den här övningen uppgraderar du programmet till att använda en relationsdatabas för att lagra dina data. Du använder SQLite för att lagra dina data.
Konfigurera SQLite-databasen
Slutför följande avsnitt för att konfigurera SQLite-databasen.
Installera följande verktyg och paket
Installera följande paket i terminalen:
SQLite EF Core Database Provider: Kan komma åt många olika databaser via plugin-bibliotek som kallas databasprovidrar. Följande paket är SQLite-databasprovidern för Entity Framework (EF) Core.
dotnet add package Microsoft.EntityFrameworkCore.Sqlite --version 8.0EF Core-verktyg: Verktyg för EF Core för att utföra uppgifter för designtidsutveckling. De skapar till exempel migreringar, tillämpar migreringar och genererar kod för en modell baserat på en befintlig databas.
dotnet tool install --global dotnet-efMicrosoft.EntityFrameworkCore.Design: Innehåller all designtidslogik för EF Core för att skapa databasen.
dotnet add package Microsoft.EntityFrameworkCore.Design --version 8.0
Aktivera skapande av databas
Om du vill aktivera skapandet av databasen måste du ange databasanslutningssträngen. Sedan migrerar du datamodellen till en SQLite-databas.
Lägg till en anslutningssträng under i
var builder = WebApplication.CreateBuilder(args);.var connectionString = builder.Configuration.GetConnectionString("Pizzas") ?? "Data Source=Pizzas.db";Den här koden kontrollerar konfigurationsprovidern efter en anslutningssträng med namnet Pizzas. Om den inte hittar någon använder den
Data Source=Pizzas.dbsom anslutningssträng. SQLite mappar strängen till en fil.I CRUD-delen av den här självstudien använde du en minnesintern databas. Nu ska du ersätta den minnesinterna databasen med en beständig databas.
Ersätt din aktuella minnesinterna databasimplementering
builder.Services.AddDbContext<PizzaDb>(options => options.UseInMemoryDatabase("items"));i dina byggtjänster med SQLite en här:builder.Services.AddSqlite<PizzaDb>(connectionString);Med EF Core-migreringsverktyget kan du nu generera din första migrering,
InitialCreate. Spara alla ändringar och kör sedan följande kommando:dotnet ef migrations add InitialCreateEF Core skapar en migrering mapp i projektkatalogen som innehåller två filer med koden som representerar databasmigreringarna.
Nu när du har slutfört migreringen kan du använda den för att skapa databasen och schemat.
I ett terminalfönster kör du följande
database updatekommando för att tillämpa migreringar på en databas:dotnet ef database updateDu bör se en nyligen skapad Pizzas.db fil i projektkatalogen.
Köra och testa programmet
Nu när du har en bakgrundsdatabas sparas ändringarna.
Testa ditt program som tidigare genom att använda dotnet run och Swagger UI. Stoppa programmet med hjälp av kommandot Ctrl+C. Kör den sedan igen och kontrollera att ändringarna fortfarande finns kvar i Pizzas.db.
Grattis! Du kopplade en databas till ditt minimala API!