Cvičení – použití zprostředkovatele databáze SQLite s EF Core
Do té doby ukládáte data do databáze v paměti. Tato databáze se dá snadno nastavit a používat při vývoji aplikace, ale data nejsou trvalá. V důsledku toho dojde ke ztrátě dat při restartování aplikace. Před nasazením aplikace je nutné zachovat data do databáze.
V tomto cvičení upgradujete aplikaci tak, aby k ukládání dat používala relační databázi. K ukládání dat použijete SQLite.
Nastavení databáze SQLite
Podle následujících částí nastavte databázi SQLite.
Nainstalujte následující nástroje a balíčky.
V terminálu nainstalujte následující balíčky:
SQLite EF Core Database Provider: Může přistupovat k mnoha různým databázím prostřednictvím knihoven modulů plug-in označovaných jako poskytovatelé databází. Následující balíček je zprostředkovatel databáze SQLite pro Entity Framework (EF) Core.
dotnet add package Microsoft.EntityFrameworkCore.Sqlite --version 8.0Nástroje EF Core: Nástroje pro EF Core provádějí úlohy vývoje v době návrhu. Vytvářejí například migrace, používají migrace a generují kód pro model založený na existující databázi.
dotnet tool install --global dotnet-efMicrosoft.EntityFrameworkCore.Design: Obsahuje veškerou logiku návrhu pro EF Core k vytvoření databáze.
dotnet add package Microsoft.EntityFrameworkCore.Design --version 8.0
Povolení vytváření databáze
Pokud chcete povolit vytváření databáze, musíte nastavit připojovací řetězec databáze. Potom provedete migraci datového modelu do databáze SQLite.
V Program.cs
var builder = WebApplication.CreateBuilder(args);přidejte připojovací řetězec.var connectionString = builder.Configuration.GetConnectionString("Pizzas") ?? "Data Source=Pizzas.db";Tento kód zkontroluje, zda poskytovatel konfigurace obsahuje připojovací řetězec s názvem Pizzas. Pokud ho nenajde, použije
Data Source=Pizzas.dbjako připojovací řetězec. SQLite namapuje tento řetězec na soubor.V části CRUD tohoto kurzu jste použili databázi v paměti. Teď nahradíte databázi v paměti trvalou databází.
Nahraďte aktuální implementaci databáze v paměti
builder.Services.AddDbContext<PizzaDb>(options => options.UseInMemoryDatabase("items"));ve vašich službách sestavení tou SQLite zde:builder.Services.AddSqlite<PizzaDb>(connectionString);Pomocí nástroje pro migraci EF Core teď můžete vygenerovat první migraci
InitialCreate. Uložte všechny provedené změny a spusťte následující příkaz:dotnet ef migrations add InitialCreateEF Core vytvoří složku Migrations v adresáři projektu, která obsahuje dva soubory s kódem, který představuje migrace databáze.
Teď, když jste migraci dokončili, můžete ji použít k vytvoření databáze a schématu.
V okně terminálu spusťte následující příkaz
database update, který použije migraci do databáze:dotnet ef database updateV adresáři projektu by se měl zobrazit nově vytvořený soubor Pizzas.db .
Spuštění a otestování aplikace
Teď, když máte záložní databázi, se změny zachovají.
Otestujte aplikaci jako dříve pomocí dotnet run a Swagger UI. Aplikaci zastavte pomocí příkazu Ctrl+C . Pak ho znovu spusťte a ověřte, že jsou vaše změny stále zachovány v Pizzas.db.
Blahopřejeme! Připojili jste databázi k vašemu minimálnímu API!