Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Obs
Den här integreringen Aspire är en del av Community Toolkit och stöds inte officiellt av Aspire teamet.
              SQLite är en lätt, serverlös, fristående SQL-databasmotor som ofta används för lokal datalagring i program. Med Aspire SQLite-integrering kan du använda SQLite-databaser i dina Aspire-program och komma åt dem via Microsoft.Data.Sqlite-klienten.
Värdtjänstintegration
SQLite-värdtjänstintegration modellerar en SQLite-databas som en SQLiteResource-typ och skapar databasfilen på den angivna platsen. För att få åtkomst till dessa typer och API:er som gör att du kan lägga 📦 till CommunityToolkit.Aspire. Hosting.SQLite NuGet-paketet i AppHost-projektet .
dotnet add package CommunityToolkit.Aspire.Hosting.SQLite
Mer information finns i dotnet add package eller Hantera paketberoenden i .NET-applikationer.
Lägga till SQLite-resurs
I AppHost-projektet registrerar och använder du SQLite-integreringen AddSQLite med hjälp av tilläggsmetoden för att lägga till SQLite-databasen i programverktyget.
var builder = DistributedApplication.CreateBuilder(args);
var sqlite = builder.AddSQLite("my-database");
var exampleProject = builder.AddProject<Projects.ExampleProject>()
                            .WithReference(sqlite);
När Aspire en SQLite-databas läggs till i AppHost, som du ser i föregående exempel, skapas en ny SQLite-databasfil i användar temp-katalogen.
Om du vill ange en anpassad plats för SQLite-databasfilen kan du också ange relevanta argument för metoden AddSqlite.
var sqlite = builder.AddSQLite("my-database", "C:\\Database\\Location", "my-database.db");
Lägg till SQLiteWeb-resurs
När du lägger till SQLite-resursen kan du också lägga till SQLiteWeb-resursen, som tillhandahåller ett webbgränssnitt för att interagera med SQLite-databasen. Det gör du genom att använda utökningsmetoden WithSqliteWeb.
var sqlite = builder.AddSQLite("my-database")
                    .WithSqliteWeb();
Den här koden lägger till en container som baseras på ghcr.io/coleifer/sqlite-web AppHost, som tillhandahåller ett webbgränssnitt för att interagera med den SQLite-databas som den är ansluten till. Varje SQLiteWeb-instans är ansluten till en enda SQLite-databas, vilket innebär att om du lägger till flera SQLiteWeb-instanser kommer det att finnas flera SQLiteWeb-containrar.
Lägga till SQLite-tillägg
SQLite stöder tillägg som kan läggas till i SQLite-databasen. Tillägg kan antingen tillhandahållas via ett NuGet-paket eller via en plats på disken. Använd tilläggsmetoderna WithNuGetExtension eller WithLocalExtension för att lägga till tillägg i SQLite-databasen.
Obs
Stöd för SQLite-tillägg anses vara experimentellt och ger en CTASPIRE002 varning.
Client integrering
Kom igång med Aspire SQLite-klientintegrering genom att 📦 installera CommunityToolkit.Aspire. Microsoft.Data.Sqlite NuGet-paketet i det klientkrävande projektet, dvs. projektet för programmet som använder SQLite-klienten. SQLite-klientintegrering registrerar en SqliteConnection instans som du kan använda för att interagera med SQLite.
dotnet add package CommunityToolkit.Aspire.Microsoft.Data.Sqlite
Lägg till Sqlite-klient
I den Program.cs-filen för ditt klientkonsumerande projekt, anropar du AddSqliteConnection-tilläggsmetoden på valfri IHostApplicationBuilder för att registrera en SqliteConnection för användning via containern för beroendeinjektion. Metoden tar en parameter för anslutningsnamn.
builder.AddSqliteConnection(name: "sqlite");
Tips
Parametern name måste matcha namnet som används när du lägger till SQLite-resursen i AppHost-projektet. Mer information finns i Lägg till SQLite-resurs.
När du har lagt till SqliteConnection i byggaren kan du hämta instansen SqliteConnection med hjälp av beroendeinjektion. Om du till exempel vill hämta anslutningsobjektet från en exempeltjänst definierar du det som en konstruktorparameter och kontrollerar att klassen ExampleService är registrerad med containern för beroendeinmatning:
public class ExampleService(SqliteConnection connection)
{
    // Use connection...
}
Mer information om beroendeinmatning finns i .NET beroendeinmatning.
Lägg till nyckelad Sqlite-klient
Det kan finnas situationer där du vill registrera flera SqliteConnection instanser med olika anslutningsnamn. Om du vill registrera nyckelade Sqlite-klienter anropar du metoden AddKeyedSqliteConnection:
builder.AddKeyedSqliteConnection(name: "chat");
builder.AddKeyedSqliteConnection(name: "queue");
Sedan kan du hämta SqliteConnection instanser med hjälp av beroendeinmatning. Om du till exempel vill hämta anslutningen från en exempeltjänst:
public class ExampleService(
    [FromKeyedServices("chat")] SqliteConnection chatConnection,
    [FromKeyedServices("queue")] SqliteConnection queueConnection)
{
    // Use connections...
}
Konfiguration
SQLite-klientintegreringen innehåller flera konfigurationsmetoder och alternativ för att uppfylla kraven och konventionerna i ditt projekt.
Använda en anslutningssträng
När du använder en anslutningssträng från ConnectionStrings-konfigurationsavsnittet kan du ange namnet på anslutningssträngen när du anropar metoden AddSqliteConnection:
builder.AddSqliteConnection("sqlite");
Sedan hämtas anslutningssträngen från avsnittet ConnectionStrings konfiguration.
{
  "ConnectionStrings": {
    "sqlite": "Data Source=C:\\Database\\Location\\my-database.db"
  }
}
Använda konfigurationsprovidrar
SQLite-klientintegrering stöder Microsoft.Extensions.Configuration. Den läser in Microsoft.Extensions.Hosting.SqliteConnectionSettings från appsettings.json eller andra konfigurationsleverantörer med hjälp av Aspire:Sqlite:Client-nyckeln. Exempel appsettings.json som konfigurerar några av alternativen:
{
  "Aspire": {
    "Sqlite": {
      "Client": {
        "ConnectionString": "Data Source=C:\\Database\\Location\\my-database.db",
        "DisableHealthCheck": true
      }
    }
  }
}