Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Enthält: Hosting-Integration —&—
Client Integration
Anmerkung
Diese Integration ist Teil des .NET.NET Aspire Community Toolkit und 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 das Microsoft.EntityFrameworkCore.Sqlite
Entity Framework-Supportpaket darauf zuzugreifen.
Hosting-Integration
Die SQLite-Hostingintegration modelliert eine SQLite-Datenbank als SQLiteResource
Typ und erstellt die Datenbankdatei am angegebenen Speicherort. Um Zugriff auf diese Typen und APIs zu erhalten, mit denen Sie das Aspire NuGet-Paket im App-Host-Projekt hinzufügen können.
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 EF-Clientintegration zu beginnen, installieren Sie das 📦 CommunityToolkit.Aspire.Microsoft.EntityFrameworkCore.Sqlite NuGet-Paket im Projekt, das den Client nutzt, also im Projekt der 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.EntityFrameworkCore.Sqlite
Hinzufügen des Sqlite-Clients
Rufen Sie in der Program.cs-Datei Ihres clientkonsumierenden Projekts die Microsoft.Extensions.Hosting.AspireEFSqliteExtensions.AddSqliteDbContext
-Erweiterungsmethode auf jedem IHostApplicationBuilder auf, um Ihre DbContext-Unterklasse für die Verwendung über den Dependency Injection-Container zu registrieren. Die Methode verwendet einen Verbindungsnamenparameter.
builder.AddSqliteDbContext<YourDbContext>(connectionName: "sqlite");
Tipp
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 YourDbContext
zum Generator hinzugefügt haben, können Sie die YourDbContext
Instanz mithilfe der Abhängigkeitseinfügung abrufen. Wenn Sie beispielsweise das Datenquellenobjekt aus einem Beispieldienst abrufen möchten, definieren Sie es als Konstruktorparameter, und stellen Sie sicher, dass die ExampleService
Klasse im Container zum Einfügen von Abhängigkeiten registriert ist:
public class ExampleService(YourDbContext context)
{
// Use context...
}
Weitere Informationen zur Abhängigkeitsinjektion finden Sie unter .NET Abhängigkeitsinjektion.
Anreichern eines SQLite-Datenbankkontexts
Möglicherweise möchten Sie die standardmäßige Entity Framework-Methode verwenden, um den Datenbankkontext abzurufen und ihn zum Abhängigkeitseinfügungscontainer hinzuzufügen.
builder.Services.AddDbContext<YourDbContext>(options =>
options.UseSqlite(builder.Configuration.GetConnectionString("sqlite")
?? throw new InvalidOperationException("Connection string 'sqlite' not found.")));
Anmerkung
Der Verbindungszeichenfolgenname, den Sie an die GetConnectionString-Methode übergeben, 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-.
Konfiguration
Die SQLite-Clientintegration bietet mehrere Konfigurationsansätze und -optionen, um die Anforderungen und Konventionen Ihres Projekts zu erfüllen.
Verwenden Sie eine Verbindungszeichenfolge
Wenn Sie eine Verbindungszeichenfolge aus dem Konfigurationsabschnitt ConnectionStrings
verwenden, können Sie beim Aufrufen der Microsoft.Extensions.Hosting.AspireEFSqliteExtensions.AddSqliteDbContext
-Methode den Namen der Verbindungszeichenfolge angeben:
builder.AddSqliteDbContext<YourDbContext>("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 Konfigurationsquellen mithilfe des Aspire:Sqlite:EntityFrameworkCore:Sqlite
-Schlüssels. Beispiel _appsettings.json, das einige der Optionen konfiguriert:
{
"Aspire": {
"Sqlite": {
"EntityFrameworkCore": {
"Sqlite": {
"ConnectionString": "Data Source=C:\\Database\\Location\\my-database.db",
"DisableHealthCheck": true
}
}
}
}
}