Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Include: —&—
Client
Nota
Questa integrazione fa parte di .NET.NET Aspire Community Toolkit e non è ufficialmente supportata dal team .NET.NET Aspire.
SQLite è un motore di database SQL leggero, serverless e autonomo ampiamente usato per l'archiviazione dei dati locali nelle applicazioni. L'integrazione .NET Aspire SQLite consente di usare i database SQLite all'interno delle applicazioni .NET Aspire e di accedervi tramite il pacchetto di supporto di Microsoft.EntityFrameworkCore.Sqlite
Entity Framework.
Integrazione dell'hosting
L'integrazione per l'hosting di SQLite modella un database SQLite come tipo SQLiteResource
e creerà il file del database nel percorso specificato. Per accedere ai tipi e alle API che consentono di aggiungere il pacchetto NuGet 📦 CommunityToolkit.Aspire.Hosting.SQLite nel progetto host dell'app .
- .NET CLI dell'interfaccia a riga di comando
- RiferimentoPacchetto
dotnet add package CommunityToolkit.Aspire.Hosting.SQLite
Per altre informazioni, vedere dotnet add package o Gestire le dipendenze dei pacchetti nelle applicazioni .NET.
Aggiungere una risorsa SQLite
Nel progetto host dell'applicazione, registrare e usare l'integrazione di SQLite utilizzando il metodo di estensione AddSQLite
per aggiungere il database SQLite al costruttore dell'applicazione.
var builder = DistributedApplication.CreateBuilder(args);
var sqlite = builder.AddSQLite("my-database");
var exampleProject = builder.AddProject<Projects.ExampleProject>()
.WithReference(sqlite);
Quando .NET.NET Aspire aggiunge un database SQLite all'host dell'app, come illustrato nell'esempio precedente, crea un nuovo file di database SQLite nella directory temporanea degli utenti.
In alternativa, se si vuole specificare un percorso personalizzato per il file di database SQLite, specificare gli argomenti pertinenti per il metodo AddSqlite
.
var sqlite = builder.AddSQLite("my-database", "C:\\Database\\Location", "my-database.db");
Aggiungere una risorsa SQLiteWeb
Quando si aggiunge la risorsa SQLite, è anche possibile aggiungere la risorsa SQLiteWeb, che fornisce un'interfaccia Web per interagire con il database SQLite. A tale scopo, usare il metodo di estensione WithSqliteWeb
.
var sqlite = builder.AddSQLite("my-database")
.WithSqliteWeb();
Questo codice aggiunge un contenitore basato su ghcr.io/coleifer/sqlite-web
all'host dell'app, che fornisce un'interfaccia Web a cui interagire con il database SQLite a cui è connesso. Ogni istanza di SQLiteWeb è connessa a un singolo database SQLite, ovvero se si aggiungono più istanze SQLiteWeb, saranno presenti più contenitori SQLiteWeb.
Aggiunta di estensioni SQLite
SQLite supporta estensioni che possono essere aggiunte al database SQLite. Le estensioni possono essere fornite tramite un pacchetto NuGet o una posizione su disco. Usare i metodi di estensione WithNuGetExtension
o WithLocalExtension
per aggiungere estensioni al database SQLite.
Nota
Il supporto delle estensioni SQLite è considerato sperimentale e genera un avviso CTASPIRE002
.
Client integrazione
Per iniziare con l'integrazione del client SQLite EF .NET.NET Aspire, installare il pacchetto NuGet 📦 CommunityToolkit.Aspire.Microsoft.EntityFrameworkCore.Sqlite nel progetto cliente, ovvero il progetto per l'applicazione che utilizza il client SQLite. L'integrazione client SQLite registra un'istanza di SqliteConnection
che è possibile usare per interagire con SQLite.
- .NET CLI dell'interfaccia a riga di comando
- RiferimentoPacchetto
dotnet add package CommunityToolkit.Aspire.Microsoft.EntityFrameworkCore.Sqlite
Aggiungere il client Sqlite
Nel file Program.cs del tuo progetto cliente consumatore, chiama il metodo di estensione Microsoft.Extensions.Hosting.AspireEFSqliteExtensions.AddSqliteDbContext
su qualsiasi IHostApplicationBuilder per registrare la tua sottoclasse DbContext da usare tramite il contenitore di iniezione delle dipendenze. Il metodo accetta un parametro del nome di connessione.
builder.AddSqliteDbContext<YourDbContext>(connectionName: "sqlite");
Consiglio
Il parametro connectionName
deve corrispondere al nome usato quando si aggiunge la risorsa SQLite nel progetto host dell'app. Per altre informazioni, vedere Aggiungere una risorsa SQLite.
Dopo aver aggiunto YourDbContext
al generatore, è possibile ottenere l'istanza di YourDbContext
usando l'iniezione delle dipendenze. Ad esempio, per recuperare l'oggetto origine dati da un servizio di esempio, definirlo come parametro del costruttore e assicurarsi che la classe ExampleService
sia registrata con il contenitore per l'iniezione delle dipendenze.
public class ExampleService(YourDbContext context)
{
// Use context...
}
Per ulteriori informazioni sull'inserimento delle dipendenze, vedere .NET inserimento delle dipendenze.
Arricchire un contesto di database SQLite
È possibile usare il metodo Entity Framework standard per ottenere il contesto del database e aggiungerlo al contenitore di inserimento delle dipendenze:
builder.Services.AddDbContext<YourDbContext>(options =>
options.UseSqlite(builder.Configuration.GetConnectionString("sqlite")
?? throw new InvalidOperationException("Connection string 'sqlite' not found.")));
Nota
Il nome della stringa di connessione passato al metodo GetConnectionString deve corrispondere al nome usato quando si aggiunge la risorsa SQLite nel progetto host dell'app. Per altre informazioni, vedere Aggiungere una risorsa SQLite.
Configurazione
L'integrazione client SQLite offre più approcci di configurazione e opzioni per soddisfare i requisiti e le convenzioni del progetto.
Usare una stringa di connessione
Quando si usa una stringa di connessione dalla sezione di configurazione ConnectionStrings
, è possibile specificare il nome della stringa di connessione quando si chiama il metodo Microsoft.Extensions.Hosting.AspireEFSqliteExtensions.AddSqliteDbContext
:
builder.AddSqliteDbContext<YourDbContext>("sqlite");
La stringa di connessione verrà quindi recuperata dalla sezione di configurazione ConnectionStrings
.
{
"ConnectionStrings": {
"sqlite": "Data Source=C:\\Database\\Location\\my-database.db"
}
}
Utilizzare i provider di configurazione
L'integrazione client SQLite supporta Microsoft.Extensions.Configuration. Carica il Microsoft.Extensions.Hosting.SqliteConnectionSettings
dal appsettings.json o da altri provider di configurazione utilizzando il codice Aspire:Sqlite:EntityFrameworkCore:Sqlite
. Esempio _appsettings.json che configura alcune delle opzioni:
{
"Aspire": {
"Sqlite": {
"EntityFrameworkCore": {
"Sqlite": {
"ConnectionString": "Data Source=C:\\Database\\Location\\my-database.db",
"DisableHealthCheck": true
}
}
}
}
}