Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Incluye: Integración de alojamiento —&—
Client integración
Nota
Esta integración forma parte del .NET.NET Aspire Community Toolkit y no es compatible oficialmente con el equipo de .NET.NET Aspire.
SQLite es un motor de base de datos SQL ligero, sin servidor y independiente que se usa ampliamente para el almacenamiento de datos local en aplicaciones. La integración de SQLite .NET Aspire proporciona una manera de usar bases de datos de SQLite dentro de las aplicaciones de .NET Aspire y acceder a ellas a través del paquete de compatibilidad de Microsoft.EntityFrameworkCore.Sqlite
Entity Framework.
Integración de hospedaje
La integración de alojamiento de SQLite modela una base de datos SQLite como el tipo SQLiteResource
y creará el archivo de base de datos en la ubicación especificada. Para acceder a estos tipos y API que permiten agregar el paquete NuGet 📦 CommunityToolkit.Aspire.Hosting.SQLite en el proyecto host de la aplicación.
- CLI de .NET
- ReferenciaDePaquete
dotnet add package CommunityToolkit.Aspire.Hosting.SQLite
Para obtener más información, consulte dotnet add package o Administrar las dependencias del paquete en aplicaciones .NET.
Adición de un recurso de SQLite
En el proyecto host de la aplicación, registre y consuma la integración de SQLite mediante el método de extensión AddSQLite
para agregar la base de datos de SQLite al generador de aplicaciones.
var builder = DistributedApplication.CreateBuilder(args);
var sqlite = builder.AddSQLite("my-database");
var exampleProject = builder.AddProject<Projects.ExampleProject>()
.WithReference(sqlite);
Cuando .NET.NET Aspire agrega una base de datos SQLite al host de la aplicación, como se muestra en el ejemplo anterior, crea un nuevo archivo de base de datos sqLite en el directorio temporal de usuarios.
Como alternativa, si desea especificar una ubicación personalizada para el archivo de base de datos de SQLite, proporcione los argumentos pertinentes al método AddSqlite
.
var sqlite = builder.AddSQLite("my-database", "C:\\Database\\Location", "my-database.db");
Adición de un recurso SQLiteWeb
Al agregar el recurso SQLite, también puede agregar el recurso SQLiteWeb, que proporciona una interfaz web para interactuar con la base de datos de SQLite. Para ello, use el método de extensión WithSqliteWeb
.
var sqlite = builder.AddSQLite("my-database")
.WithSqliteWeb();
Este código agrega un contenedor basado en ghcr.io/coleifer/sqlite-web
al host de la aplicación, que proporciona una interfaz web para interactuar con la base de datos de SQLite a la que está conectada. Cada instancia de SQLiteWeb está conectada a una base de datos de SQLite única, lo que significa que si agrega varias instancias de SQLiteWeb, habrá varios contenedores SQLiteWeb.
Adición de extensiones de SQLite
SQLite admite extensiones que se pueden agregar a la base de datos de SQLite. Las extensiones se pueden proporcionar a través de un paquete NuGet o a través de una ubicación en el disco. Use los métodos de extensión WithNuGetExtension
o WithLocalExtension
para agregar extensiones a la base de datos de SQLite.
Nota
La compatibilidad con extensiones de SQLite se considera experimental y genera una advertencia CTASPIRE002
.
integración Client
Para empezar a trabajar con la integración del cliente EF de .NET.NET Aspire SQLite, instale el paquete NuGet 📦 CommunityToolkit.Aspire.Microsoft.EntityFrameworkCore.Sqlite en el proyecto que consume el cliente, es decir, el proyecto de la aplicación que utiliza SQLite. La integración de cliente de SQLite registra una instancia de SqliteConnection
que puede usar para interactuar con SQLite.
- CLI de .NET
- ReferenciaDePaquete
dotnet add package CommunityToolkit.Aspire.Microsoft.EntityFrameworkCore.Sqlite
Agregar cliente Sqlite
En el archivo Program.cs de su proyecto cliente consumidor, invoque el método extendido Microsoft.Extensions.Hosting.AspireEFSqliteExtensions.AddSqliteDbContext
en cualquier IHostApplicationBuilder para registrar su subclase de DbContext para su uso a través del contenedor de inyección de dependencias. El método toma un parámetro de nombre de conexión.
builder.AddSqliteDbContext<YourDbContext>(connectionName: "sqlite");
Propina
El parámetro connectionName
debe coincidir con el nombre usado al agregar el recurso SQLite en el proyecto host de la aplicación. Para obtener más información, consulte Agregar recurso de SQLite.
Después de agregar YourDbContext
al generador, puede obtener la instancia de YourDbContext
mediante la inyección de dependencias. Por ejemplo, para recuperar el objeto de origen de datos de un servicio de ejemplo, definalo como parámetro de constructor y asegúrese de que la clase ExampleService
esté registrada con el contenedor de inserción de dependencias:
public class ExampleService(YourDbContext context)
{
// Use context...
}
Para obtener más información sobre la inserción de dependencias, consulte .NET inserción de dependencias.
Enriquecer un contexto de base de datos de SQLite
Es posible que prefiera usar el método de Entity Framework estándar para obtener el contexto de la base de datos y agregarlo al contenedor de inserción de dependencias:
builder.Services.AddDbContext<YourDbContext>(options =>
options.UseSqlite(builder.Configuration.GetConnectionString("sqlite")
?? throw new InvalidOperationException("Connection string 'sqlite' not found.")));
Nota
El nombre de la cadena de conexión que se pasa al método GetConnectionString debe coincidir con el nombre usado al agregar el recurso SQLite en el proyecto host de la aplicación. Para obtener más información, consulte Agregar recurso de SQLite.
Configuración
La integración de cliente de SQLite proporciona varios enfoques de configuración y opciones para cumplir los requisitos y convenciones del proyecto.
Uso de una cadena de conexión
Al usar una cadena de conexión de la sección de configuración de ConnectionStrings
, puede proporcionar el nombre de la cadena de conexión al llamar al método Microsoft.Extensions.Hosting.AspireEFSqliteExtensions.AddSqliteDbContext
:
builder.AddSqliteDbContext<YourDbContext>("sqlite");
A continuación, la cadena de conexión se recuperará de la sección de configuración ConnectionStrings
.
{
"ConnectionStrings": {
"sqlite": "Data Source=C:\\Database\\Location\\my-database.db"
}
}
Uso de proveedores de configuración
La integración del cliente de SQLite admite Microsoft.Extensions.Configuration. Carga el Microsoft.Extensions.Hosting.SqliteConnectionSettings
desde el appsettings.json u otros proveedores de configuración usando la clave Aspire:Sqlite:EntityFrameworkCore:Sqlite
. Ejemplo _appsettings.json que configura algunas de las opciones:
{
"Aspire": {
"Sqlite": {
"EntityFrameworkCore": {
"Sqlite": {
"ConnectionString": "Data Source=C:\\Database\\Location\\my-database.db",
"DisableHealthCheck": true
}
}
}
}
}