Integração do SQLite do Kit de Ferramentas da Comunidade .NET.NET Aspire
Inclui: integração de hospedagem e integração
Client
Nota
Essa integração faz parte do do.NET.NET Aspire Community Toolkit e não é oficialmente compatível com a equipe de .NET.NET Aspire.
SQLite é um mecanismo de banco de dados SQL leve, sem servidor e independente que é amplamente usado para armazenamento de dados local em aplicativos. A integração .NET Aspire SQLite fornece uma maneira de usar bancos de dados SQLite em seus aplicativos .NET Aspire e acessá-los por meio do cliente Microsoft.Data.Sqlite
.
Integração de hospedagem
A integração de hospedagem do SQLite modela um banco de dados SQLite como o tipo SQLiteResource
e criará o arquivo de banco de dados no local especificado. Para acessar esses tipos e APIs que permitem adicionar o 📦 CommunityToolkit.Aspire. Hosting.SQLite pacote NuGet no do host do aplicativo projeto.
- .NET CLI
- PackageReference
dotnet add package CommunityToolkit.Aspire.Hosting.SQLite
Para obter mais informações, consulte dotnet add package ou Gerencie dependências de pacotes em aplicativos .NET.
Adicionar recurso SQLite
No projeto de host do aplicativo, registre e consuma a integração do SQLite usando o método de extensão AddSQLite
para adicionar o banco de dados SQLite ao construtor de aplicativos.
var builder = DistributedApplication.CreateBuilder(args);
var sqlite = builder.AddSQLite("my-database");
var exampleProject = builder.AddProject<Projects.ExampleProject>()
.WithReference(sqlite);
Quando .NET.NET Aspire adiciona um banco de dados SQLite ao host do aplicativo, conforme mostrado no exemplo anterior, ele cria um novo arquivo de banco de dados SQLite no diretório temp dos usuários.
Como alternativa, se você quiser especificar um local personalizado para o arquivo de banco de dados SQLite, forneça os argumentos relevantes para o método AddSqlite
.
var sqlite = builder.AddSQLite("my-database", "C:\\Database\\Location", "my-database.db");
Adicionar recurso SQLiteWeb
Ao adicionar o recurso SQLite, você também pode adicionar o recurso SQLiteWeb, que fornece uma interface da Web para interagir com o banco de dados SQLite. Para fazer isso, use o método de extensão WithSqliteWeb
.
var sqlite = builder.AddSQLite("my-database")
.WithSqliteWeb();
Esse código adiciona um contêiner com base em ghcr.io/coleifer/sqlite-web
ao host do aplicativo, que fornece uma interface da Web para interagir com o banco de dados SQLite ao qual ele está conectado. Cada instância do SQLiteWeb está conectada a um único banco de dados SQLite, o que significa que, se você adicionar várias instâncias do SQLiteWeb, haverá vários contêineres SQLiteWeb.
Adicionando extensões do SQLite
O SQLite dá suporte a extensões que podem ser adicionadas ao banco de dados SQLite. As extensões podem ser fornecidas por meio de um pacote NuGet ou por meio de um local no disco. Use os métodos de extensão WithNuGetExtension
ou WithLocalExtension
para adicionar extensões ao banco de dados SQLite.
Nota
O suporte a extensões SQLite é considerado experimental e produz um aviso CTASPIRE002
.
integração Client
Para começar a usar a integração do cliente .NET.NET Aspire SQLite, instale o pacote NuGet 📦 CommunityToolkit.Aspire.Microsoft.Data.Sqlite no projeto consumidor, ou seja, o projeto do aplicativo que utiliza o cliente SQLite. A integração do cliente SQLite registra uma instância de SqliteConnection
que você pode usar para interagir com o SQLite.
- .NET Interface de Linha de Comando
- PackageReference
dotnet add package CommunityToolkit.Aspire.Microsoft.Data.Sqlite
Adicionar cliente Sqlite
No arquivo Program.cs do projeto que consome o cliente, invoque o método de extensão Microsoft.Extensions.Hosting.AspireSqliteExtensions.AddSqliteConnection
em qualquer IHostApplicationBuilder para registrar um SqliteConnection
para uso através do contêiner de injeção de dependência. O método usa um parâmetro de nome de conexão.
builder.AddSqliteConnection(connectionName: "sqlite");
Ponta
O parâmetro connectionName
deve corresponder ao nome usado ao adicionar o recurso SQLite no projeto de host do aplicativo. Para obter mais informações, consulte Adicionarde recursos do SQLite.
Depois de adicionar SqliteConnection
ao construtor, você pode obter a instância de SqliteConnection
usando a injeção de dependência. Por exemplo, para recuperar o objeto de conexão de um serviço de exemplo, defina-o como um parâmetro de construtor e verifique se a classe ExampleService
está registrada com o contêiner de injeção de dependência:
public class ExampleService(SqliteConnection connection)
{
// Use connection...
}
Para obter mais informações sobre injeção de dependência, consulte .NETinjeção de dependência.
Adicionar cliente Sqlite com chave
Pode haver situações em que você deseja registrar várias instâncias de SqliteConnection
com nomes de conexão diferentes. Para registrar clientes sqlite com chave, chame o método Microsoft.Extensions.Hosting.AspireSqliteExtensions.AddKeyedSqliteConnection
:
builder.AddKeyedSqliteConnection(name: "chat");
builder.AddKeyedSqliteConnection(name: "queue");
Em seguida, você pode recuperar as instâncias de SqliteConnection
usando a injeção de dependência. Por exemplo, para recuperar a conexão de um serviço de exemplo:
public class ExampleService(
[FromKeyedServices("chat")] SqliteConnection chatConnection,
[FromKeyedServices("queue")] SqliteConnection queueConnection)
{
// Use connections...
}
Configuração
A integração do cliente SQLite fornece várias abordagens de configuração e opções para atender aos requisitos e convenções do seu projeto.
Usar uma cadeia de conexão
Ao usar uma cadeia de conexão da seção de configuração ConnectionStrings
, você pode fornecer o nome da cadeia de conexão ao chamar o método Microsoft.Extensions.Hosting.AspireSqliteExtensions.AddSqliteConnection
:
builder.AddSqliteConnection("sqlite");
Em seguida, a cadeia de conexão será recuperada da seção de configuração ConnectionStrings
.
{
"ConnectionStrings": {
"sqlite": "Data Source=C:\\Database\\Location\\my-database.db"
}
}
Usar provedores de configuração
A integração do cliente SQLite dá suporte a Microsoft.Extensions.Configuration. Ele carrega a Microsoft.Extensions.Hosting.SqliteConnectionSettings
do appsettings.json ou de outros provedores de configuração usando a chave Aspire:Sqlite:Client
. Exemplo appsettings.json que configura algumas das opções:
{
"Aspire": {
"Sqlite": {
"Client": {
"ConnectionString": "Data Source=C:\\Database\\Location\\my-database.db",
"DisableHealthCheck": true
}
}
}
}