Übung: Verwenden des SQLite-Datenbankanbieters mit EF Core

Abgeschlossen

Bis zu diesem Zeitpunkt haben Sie Ihre Daten in einer Speicherdatenbank gespeichert. Diese Datenbank ist einfach einzurichten und zu verwenden, während Sie Ihre Anwendung entwickeln, aber die Daten sind nicht persistent. Daher gehen die Daten verloren, wenn die Anwendung neu gestartet wird. Bevor Sie Ihre Anwendung bereitstellen, müssen Sie die Daten in einer Datenbank speichern.

In dieser Übung aktualisieren Sie Ihre Anwendung so, dass sie eine relationale Datenbank zum Speichern Ihrer Daten verwendet. Sie verwenden SQLite, um Ihre Daten zu speichern.

Einrichten der SQLite-Datenbank

Führen Sie die folgenden Abschnitte aus, um die SQLite-Datenbank einzurichten.

Installieren der folgenden Tools und Pakete

Installieren Sie im Terminal die folgenden Pakete:

  1. SQLite EF Core-Datenbankanbieter: Kann über Plug-In-Bibliotheken, die als Datenbankanbieter bezeichnet werden, auf viele verschiedene Datenbanken zugreifen. Das folgende Paket ist der SQLite-Datenbankanbieter für Entity Framework (EF) Core.

    dotnet add package Microsoft.EntityFrameworkCore.Sqlite --version 8.0
    
  2. EF Core-Tools: Tools für EF Core führen entwurfszeitbasierte Entwicklungsaufgaben aus. Sie erstellen beispielsweise Migrationen, wenden Migrationen an und generieren Code für ein Modell basierend auf einer vorhandenen Datenbank.

    dotnet tool install --global dotnet-ef
    
  3. Microsoft.EntityFrameworkCore.Design: Enthält alle Entwurfszeitlogik für EF Core zum Erstellen Ihrer Datenbank.

    dotnet add package Microsoft.EntityFrameworkCore.Design --version 8.0
    

Aktivieren der Datenbankerstellung

Um die Datenbankerstellung zu aktivieren, müssen Sie die Datenbankverbindungszeichenfolge festlegen. Anschließend migrieren Sie Ihr Datenmodell zu einer SQLite-Datenbank.

  1. Fügen Sie im Program.cs unter var builder = WebApplication.CreateBuilder(args); eine Verbindungszeichenfolge hinzu.

    var connectionString = builder.Configuration.GetConnectionString("Pizzas") ?? "Data Source=Pizzas.db";
    

    Dieser Code überprüft den Konfigurationsanbieter auf eine Verbindungszeichenfolge namens Pizzas. Wenn es keinen findet, wird es Data Source=Pizzas.db als Verbindungszeichenfolge verwenden. SQLite zuordnen diese Zeichenfolge zu einer Datei.

  2. Im CRUD-Teil dieses Lernprogramms haben Sie eine In-Memory-Datenbank verwendet. Jetzt ersetzen Sie die In-Memory-Datenbank durch eine persistente Datenbank.

    Ersetzen Sie Ihre aktuelle In-Memory-Datenbankimplementierung builder.Services.AddDbContext<PizzaDb>(options => options.UseInMemoryDatabase("items")); in Ihren Builddiensten durch diese SQLite-Version hier:

    builder.Services.AddSqlite<PizzaDb>(connectionString);
    
  3. Mit dem EF Core-Migrationstool können Sie jetzt Ihre erste Migration generieren. InitialCreate Speichern Sie alle Ihre Änderungen, und führen Sie dann den folgenden Befehl aus:

    dotnet ef migrations add InitialCreate
    

    EF Core erstellt einen Migrationsordner in Ihrem Projektverzeichnis, der zwei Dateien mit dem Code enthält, der die Datenbankmigrationen darstellt.

  4. Nachdem Sie die Migration abgeschlossen haben, können Sie sie verwenden, um Ihre Datenbank und Ihr Schema zu erstellen.

    Führen Sie in einem Terminalfenster den folgenden database update Befehl aus, um Migrationen auf eine Datenbank anzuwenden:

    dotnet ef database update
    

    In Ihrem Projektverzeichnis sollte eine neu erstellte Pizzas.db Datei angezeigt werden.

Ausführen und Testen der Anwendung

Da Sie nun über eine Sicherungsdatenbank verfügen, werden Ihre Änderungen beibehalten.

Testen Sie Ihre Anwendung wie zuvor mithilfe von dotnet run und der Swagger-UI. Beenden Sie die Anwendung mithilfe des Befehls STRG+C . Führen Sie sie dann erneut aus, und stellen Sie sicher, dass Ihre Änderungen weiterhin in Pizzas.db beibehalten werden.

Glückwunsch! Sie haben eine Datenbank mit Ihrer minimalen API verbunden!