Integrace .NET.NET Aspire Community Toolkit SQLite
zahrnuje: integraci hostování a
Client integraci
Poznámka
Tato integrace je součástí .NET.NET Aspire Community Toolkit a není oficiálně podporována týmem .NET.NET Aspire.
SQLite je jednoduchý, bezserverový databázový stroj SQL, který se běžně používá pro místní úložiště dat v aplikacích. Integrace .NET Aspire SQLite poskytuje způsob, jak používat databáze SQLite v rámci .NET Aspire aplikací a přistupovat k nim prostřednictvím klienta Microsoft.Data.Sqlite
.
Integrace hostování
Integrace SQLite hostingu modeluje databázi SQLite jako typ SQLiteResource
a vytvoří soubor databáze v zadaném umístění. Přístup k těmto typům a rozhraním API, které umožňují přidat 📦 CommunityToolkit.Aspire. Hostování.SQLite balíčku NuGet v projektu hostitele aplikace .
dotnet add package CommunityToolkit.Aspire.Hosting.SQLite
Další informace najdete v tématu dotnet add package nebo Správa závislostí balíčků v .NET aplikacích.
Přidání prostředku SQLite
V projektu hostitele aplikace zaregistrujte a využijte integraci SQLite pomocí metody rozšíření AddSQLite
pro přidání databáze SQLite do tvůrce aplikací.
var builder = DistributedApplication.CreateBuilder(args);
var sqlite = builder.AddSQLite("my-database");
var exampleProject = builder.AddProject<Projects.ExampleProject>()
.WithReference(sqlite);
Když .NET.NET Aspire přidá do hostitele aplikace databázi SQLite, jak je znázorněno v předchozím příkladu, vytvoří nový soubor databáze SQLite v dočasném adresáři uživatelů.
Případně pokud chcete zadat vlastní umístění pro soubor databáze SQLite, zadejte příslušné argumenty pro AddSqlite
metodu.
var sqlite = builder.AddSQLite("my-database", "C:\\Database\\Location", "my-database.db");
Přidání prostředku SQLiteWeb
Při přidávání prostředku SQLite můžete také přidat prostředek SQLiteWeb, který poskytuje webové rozhraní pro interakci s databází SQLite. K tomu použijte metodu rozšíření WithSqliteWeb
.
var sqlite = builder.AddSQLite("my-database")
.WithSqliteWeb();
Tento kód přidá kontejner založený na ghcr.io/coleifer/sqlite-web
k hostiteli aplikace, který poskytuje webové rozhraní pro interakci s databází SQLite, ke které je připojený. Každá instance SQLiteWeb je připojená k jedné databázi SQLite, což znamená, že pokud přidáte více instancí SQLiteWeb, bude existovat více kontejnerů SQLiteWeb.
Přidání rozšíření SQLite
SQLite podporuje rozšíření, která lze přidat do databáze SQLite. Rozšíření je možné poskytnout buď prostřednictvím balíčku NuGet, nebo prostřednictvím umístění na disku. Pomocí metod rozšíření WithNuGetExtension
nebo WithLocalExtension
přidejte rozšíření do databáze SQLite.
Poznámka
Podpora rozšíření SQLite se považuje za experimentální a způsobuje CTASPIRE002
upozornění.
integrace Client
Chcete-li začít s integrací klienta .NET.NET Aspire SQLite, nainstalujte balíček NuGet 📦 CommunityToolkit.Aspire.Microsoft.Data.Sqlite v projektu, který využívá klienta, tedy v projektu aplikace, která využívá klienta SQLite. Integrace klienta SQLite registruje instanci SqliteConnection
, kterou můžete použít k interakci s SQLite.
dotnet add package CommunityToolkit.Aspire.Microsoft.Data.Sqlite
Přidání klienta Sqlite
V souboru Program.cs pro projekt využívající klienta zavolejte metodu rozšíření Microsoft.Extensions.Hosting.AspireSqliteExtensions.AddSqliteConnection
pro jakýkoli IHostApplicationBuilder a zaregistrujte SqliteConnection
pro použití prostřednictvím kontejneru pro injektáže závislostí. Metoda přebírá parametr názvu připojení.
builder.AddSqliteConnection(connectionName: "sqlite");
Spropitné
Parametr connectionName
se musí shodovat s názvem použitým při přidávání prostředku SQLite do hostitelského projektu aplikace. Další informace najdete v tématu Přidání prostředku SQLite.
Po přidání SqliteConnection
do builderu můžete získat instanci SqliteConnection
pomocí injektování závislostí. Pokud například chcete načíst objekt připojení z ukázkové služby, definujte ho jako parametr konstruktoru a ujistěte se, že je třída ExampleService
zaregistrovaná v kontejneru injektáže závislostí:
public class ExampleService(SqliteConnection connection)
{
// Use connection...
}
Další informace o injektáži závislostí najdete v tématu .NET injektáž závislostí.
Přidání klienta Sqlite s klíči
Mohou nastat situace, kdy budete chtít zaregistrovat více instancí SqliteConnection
s různými názvy připojení. Pokud chcete zaregistrovat klienty Sqlite s klíči, zavolejte metodu Microsoft.Extensions.Hosting.AspireSqliteExtensions.AddKeyedSqliteConnection
:
builder.AddKeyedSqliteConnection(name: "chat");
builder.AddKeyedSqliteConnection(name: "queue");
Potom můžete načíst SqliteConnection
instance pomocí injektáže závislostí. Například pro získání připojení z ukázkové služby:
public class ExampleService(
[FromKeyedServices("chat")] SqliteConnection chatConnection,
[FromKeyedServices("queue")] SqliteConnection queueConnection)
{
// Use connections...
}
Konfigurace
Integrace klienta SQLite poskytuje několik přístupů a možností konfigurace pro splnění požadavků a konvencí projektu.
Použijte připojovací řetězec
Při použití připojovacího řetězce z oddílu konfigurace ConnectionStrings
můžete při volání metody Microsoft.Extensions.Hosting.AspireSqliteExtensions.AddSqliteConnection
zadat název připojovacího řetězce:
builder.AddSqliteConnection("sqlite");
Pak se připojovací řetězec načte z konfiguračního oddílu ConnectionStrings
.
{
"ConnectionStrings": {
"sqlite": "Data Source=C:\\Database\\Location\\my-database.db"
}
}
Použití zprostředkovatelů konfigurace
Integrace klienta SQLite podporuje Microsoft.Extensions.Configuration. Načte Microsoft.Extensions.Hosting.SqliteConnectionSettings
z appsettings.json nebo jiných zprostředkovatelů konfigurace s použitím klíče Aspire:Sqlite:Client
. Příklad appsettings.json, který konfiguruje některé z možností:
{
"Aspire": {
"Sqlite": {
"Client": {
"ConnectionString": "Data Source=C:\\Database\\Location\\my-database.db",
"DisableHealthCheck": true
}
}
}
}