integrace .NET.NET Aspire Community Toolkit SQLite Entity Framework
zahrnuje: hostovací integrace a integrace
Client
Poznámka
Tato integrace je součástí sady.NET.NET Aspire Community Toolkit a není oficiálně podporovaná 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 balíčku podpory Microsoft.EntityFrameworkCore.Sqlite
Entity Framework.
Integrace hostování
Integrační modely hostující databázi SQLite jako typ SQLiteResource
vytvoří soubor databáze v určené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 Manage package dependencies in .NET applications.
Přidejte prostředek 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 je považována za experimentální a generuje upozornění CTASPIRE002
.
integrace Client
Pokud chcete začít s integrací klienta EF s .NET.NET Aspire SQLite, nainstalujte sadu 📦 CommunityToolkit.Aspire. Microsoft.EntityFrameworkCore.Sqlite balíček NuGet v projektu, který využívá klienta, tj. projekt pro aplikaci, která používá klienta SQLite. Integrace klienta SQLite registruje instanci SqliteConnection
, kterou můžete použít k interakci s SQLite.
dotnet add package CommunityToolkit.Aspire.Microsoft.EntityFrameworkCore.Sqlite
Přidání klienta Sqlite
V souboru Program.cs ve vašem projektu, který používá klienta, zavolejte metodu rozšíření Microsoft.Extensions.Hosting.AspireEFSqliteExtensions.AddSqliteDbContext
pro jakýkoli IHostApplicationBuilder a zaregistrujte podtřídu DbContext pro použití skrze kontejner pro vkládání závislostí. Metoda přebírá parametr názvu připojení.
builder.AddSqliteDbContext<YourDbContext>(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í YourDbContext
do konstruktoru můžete získat instanci YourDbContext
pomocí injektování závislostí. Pokud například chcete načíst objekt zdroje dat 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(YourDbContext context)
{
// Use context...
}
Další informace o injektáži závislostí najdete v tématu .NET injektáž závislostí.
Rozšíření kontextu databáze SQLite
Pokud chcete získat kontext databáze a přidat ji do kontejneru injektáže závislostí, můžete raději použít standardní metodu Entity Framework:
builder.Services.AddDbContext<YourDbContext>(options =>
options.UseSqlite(builder.Configuration.GetConnectionString("sqlite")
?? throw new InvalidOperationException("Connection string 'sqlite' not found.")));
Poznámka
Název připojovacího řetězce, který předáte metodě GetConnectionString, 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.
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.AspireEFSqliteExtensions.AddSqliteDbContext
zadat název připojovacího řetězce:
builder.AddSqliteDbContext<YourDbContext>("sqlite");
Připojovací řetězec se pak načte z oddílu konfigurace 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
ze appsettings.json nebo dalších poskytovatelů konfigurace za použití klíče Aspire:Sqlite:EntityFrameworkCore:Sqlite
. Příklad _appsettings.json, který konfiguruje některé z možností:
{
"Aspire": {
"Sqlite": {
"EntityFrameworkCore": {
"Sqlite": {
"ConnectionString": "Data Source=C:\\Database\\Location\\my-database.db",
"DisableHealthCheck": true
}
}
}
}
}