Cvičení – použití zprostředkovatele databáze SQLite s EF Core

Dokončeno

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:

  1. 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.0
    
  2. Ná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-ef
    
  3. Microsoft.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.

  1. V Program.csvar 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.db jako připojovací řetězec. SQLite namapuje tento řetězec na soubor.

  2. 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);
    
  3. 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 InitialCreate
    

    EF Core vytvoří složku Migrations v adresáři projektu, která obsahuje dva soubory s kódem, který představuje migrace databáze.

  4. 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 update
    

    V 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!