Übung: Verwenden des SQLite-Datenbankanbieters mit EF Core
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:
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.0EF 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-efMicrosoft.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.
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.dbals Verbindungszeichenfolge verwenden. SQLite zuordnen diese Zeichenfolge zu einer Datei.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);Mit dem EF Core-Migrationstool können Sie jetzt Ihre erste Migration generieren.
InitialCreateSpeichern Sie alle Ihre Änderungen, und führen Sie dann den folgenden Befehl aus:dotnet ef migrations add InitialCreateEF Core erstellt einen Migrationsordner in Ihrem Projektverzeichnis, der zwei Dateien mit dem Code enthält, der die Datenbankmigrationen darstellt.
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 updateBefehl aus, um Migrationen auf eine Datenbank anzuwenden:dotnet ef database updateIn 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!