.NET .NET Aspire Community Toolkit für die SQLite-Integration
umfasst: Hostingintegration und
Client Integration
Anmerkung
Diese Integration ist Teil des .NET.NET Aspire Community Toolkit und wird vom .NET.NET Aspire Team nicht offiziell unterstützt.
SQLite- ist ein einfaches, serverloses, eigenständiges SQL-Datenbankmodul, das häufig für die lokale Datenspeicherung in Anwendungen verwendet wird. Die .NET Aspire SQLite-Integration bietet eine Möglichkeit, SQLite-Datenbanken in Ihren .NET Aspire-Anwendungen zu verwenden und über den Microsoft.Data.Sqlite
-Client darauf zuzugreifen.
Hosting-Integration
Die SQLite-Hostingintegration modelliert eine SQLite-Datenbank als SQLiteResource
Typ und erstellt die Datenbankdatei am angegebenen Speicherort. Um auf diese Typen und APIs zuzugreifen, die es Ihnen ermöglichen, das 📦 CommunityToolkitAspire.Hosting.SQLite NuGet-Paket im App-Host Projekt hinzuzufügen.
dotnet add package CommunityToolkit.Aspire.Hosting.SQLite
Weitere Informationen finden Sie unter dotnet add package oder Paketabhängigkeiten in .NET-Anwendungen verwalten.
Hinzufügen einer SQLite-Ressource
Registrieren und nutzen Sie im App-Hostprojekt die SQLite-Integration mithilfe der AddSQLite
Erweiterungsmethode, um die SQLite-Datenbank dem Anwendungs-Generator hinzuzufügen.
var builder = DistributedApplication.CreateBuilder(args);
var sqlite = builder.AddSQLite("my-database");
var exampleProject = builder.AddProject<Projects.ExampleProject>()
.WithReference(sqlite);
Wenn .NET.NET Aspire dem App-Host eine SQLite-Datenbank hinzufügt, wie im vorherigen Beispiel gezeigt, wird eine neue SQLite-Datenbankdatei im temporären Benutzerverzeichnis erstellt.
Wenn Sie auch einen benutzerdefinierten Speicherort für die SQLite-Datenbankdatei angeben möchten, geben Sie die relevanten Argumente für die AddSqlite
-Methode an.
var sqlite = builder.AddSQLite("my-database", "C:\\Database\\Location", "my-database.db");
Hinzufügen einer SQLiteWeb-Ressource
Beim Hinzufügen der SQLite-Ressource können Sie auch die SQLiteWeb-Ressource hinzufügen, die eine Webschnittstelle für die Interaktion mit der SQLite-Datenbank bereitstellt. Verwenden Sie dazu die WithSqliteWeb
Erweiterungsmethode.
var sqlite = builder.AddSQLite("my-database")
.WithSqliteWeb();
Dieser Code fügt dem App-Host einen Container basierend auf ghcr.io/coleifer/sqlite-web
hinzu, der eine Webschnittstelle für die Interaktion mit der SQLite-Datenbank bereitstellt, mit der sie verbunden ist. Jede SQLiteWeb-Instanz ist mit einer einzigen SQLite-Datenbank verbunden, d. h., wenn Sie mehrere SQLiteWeb-Instanzen hinzufügen, gibt es mehrere SQLiteWeb-Container.
Hinzufügen von SQLite-Erweiterungen
SQLite unterstützt Erweiterungen, die der SQLite-Datenbank hinzugefügt werden können. Erweiterungen können entweder über ein NuGet-Paket oder über einen Speicherort auf dem Datenträger bereitgestellt werden. Verwenden Sie entweder die WithNuGetExtension
- oder WithLocalExtension
Erweiterungsmethoden, um Erweiterungen zur SQLite-Datenbank hinzuzufügen.
Anmerkung
Die SQLite-Erweiterungsunterstützung gilt als experimentell und erzeugt eine CTASPIRE002
Warnung.
Client Integration
Um mit der .NET.NET Aspire SQLite-Clientintegration zu beginnen, installieren Sie das 📦 CommunityToolkit.Aspire. Microsoft.Data.Sqlite NuGet-Paket im clientverwendenden Projekt, d. h. das Projekt für die Anwendung, die den SQLite-Client verwendet. Die SQLite-Clientintegration registriert eine SqliteConnection
Instanz, die Sie für die Interaktion mit SQLite verwenden können.
dotnet add package CommunityToolkit.Aspire.Microsoft.Data.Sqlite
Hinzufügen des Sqlite-Clients
Rufen Sie in der Program.cs Datei Ihres Client-Anwendungsprojekts die Microsoft.Extensions.Hosting.AspireSqliteExtensions.AddSqliteConnection
Erweiterungsmethode an jedem IHostApplicationBuilder auf, um eine SqliteConnection
für die Verwendung über den Abhängigkeitsinjektionscontainer zu registrieren. Die Methode verwendet einen Verbindungsnamenparameter.
builder.AddSqliteConnection(connectionName: "sqlite");
Empfehlung
Der parameter connectionName
muss mit dem Namen übereinstimmen, der beim Hinzufügen der SQLite-Ressource im App-Hostprojekt verwendet wird. Weitere Informationen finden Sie unter Hinzufügen von SQLite-Ressourcen-.
Nachdem Sie SqliteConnection
zum Generator hinzugefügt haben, können Sie die SqliteConnection
Instanz mithilfe der Abhängigkeitseinfügung abrufen. Wenn Sie ihr Verbindungsobjekt beispielsweise aus einem Beispieldienst abrufen möchten, definieren Sie es als Konstruktorparameter und stellen Sie sicher, dass die ExampleService
Klasse beim Container zum Einfügen von Abhängigkeiten registriert ist:
public class ExampleService(SqliteConnection connection)
{
// Use connection...
}
Weitere Informationen zur Abhängigkeitsinjektion finden Sie unter .NET Abhängigkeitsinjektion.
Hinzufügen eines sqlite-Clients mit Schlüsseln
Es kann Situationen geben, in denen Sie mehrere SqliteConnection
Instanzen mit unterschiedlichen Verbindungsnamen registrieren möchten. Rufen Sie die Microsoft.Extensions.Hosting.AspireSqliteExtensions.AddKeyedSqliteConnection
-Methode auf, um keyed Sqlite-Clients zu registrieren:
builder.AddKeyedSqliteConnection(name: "chat");
builder.AddKeyedSqliteConnection(name: "queue");
Anschließend können Sie die SqliteConnection
Instanzen mithilfe der Abhängigkeitseinfügung abrufen. So rufen Sie beispielsweise die Verbindung aus einem Beispieldienst ab:
public class ExampleService(
[FromKeyedServices("chat")] SqliteConnection chatConnection,
[FromKeyedServices("queue")] SqliteConnection queueConnection)
{
// Use connections...
}
Konfiguration
Die SQLite-Clientintegration bietet mehrere Konfigurationsansätze und -optionen, um die Anforderungen und Konventionen Ihres Projekts zu erfüllen.
Verwende eine Verbindungszeichenfolge
Wenn Sie eine Verbindungszeichenfolge aus dem Konfigurationsabschnitt ConnectionStrings
verwenden, können Sie beim Aufrufen der Microsoft.Extensions.Hosting.AspireSqliteExtensions.AddSqliteConnection
-Methode den Namen der Verbindungszeichenfolge angeben:
builder.AddSqliteConnection("sqlite");
Anschließend wird die Verbindungszeichenfolge aus dem Konfigurationsabschnitt ConnectionStrings
abgerufen.
{
"ConnectionStrings": {
"sqlite": "Data Source=C:\\Database\\Location\\my-database.db"
}
}
Verwenden von Konfigurationsanbietern
Die SQLite-Clientintegration unterstützt Microsoft.Extensions.Configuration. Sie lädt die Microsoft.Extensions.Hosting.SqliteConnectionSettings
aus dem appsettings.json oder anderen Konfigurationsanbietern mithilfe des Aspire:Sqlite:Client
Schlüssels. Beispiel appsettings.json, das einige der Optionen konfiguriert:
{
"Aspire": {
"Sqlite": {
"Client": {
"ConnectionString": "Data Source=C:\\Database\\Location\\my-database.db",
"DisableHealthCheck": true
}
}
}
}