.NET .NET Aspire Community Toolkit SQLite 통합
포함: 호스팅 통합 및
Client 통합
메모
이 통합은 .NET.NET Aspire 커뮤니티 도구 키트 일부이며 .NET.NET Aspire 팀에서 공식적으로 지원하지 않습니다.
SQLite 애플리케이션의 로컬 데이터 스토리지에 널리 사용되는 경량의 서버리스 자체 포함 SQL 데이터베이스 엔진입니다.
.NET Aspire SQLite 통합은 .NET Aspire 애플리케이션 내에서 SQLite 데이터베이스를 사용하고 Microsoft.Data.Sqlite
클라이언트를 통해 액세스하는 방법을 제공합니다.
호스팅 통합
SQLite 호스팅 통합은 SQLite 데이터베이스를 SQLiteResource
형식으로 모델화하고 지정된 위치에 데이터베이스 파일을 만듭니다.
📦 CommunityToolkit와Aspire.Hosting.SQLite NuGet 패키지를 앱 호스트 프로젝트에 추가할 수 있는 형식 및 API에 액세스하려면.
dotnet add package CommunityToolkit.Aspire.Hosting.SQLite
자세한 내용은 dotnet add package 또는 .NET 애플리케이션의 패키지 종속성 관리를 참조하세요.
SQLite 리소스 추가
앱 호스트 프로젝트에서 AddSQLite
확장 메서드를 사용하여 SQLite 통합을 등록하고, 애플리케이션 빌더에 SQLite 데이터베이스를 추가하여 사용합니다.
var builder = DistributedApplication.CreateBuilder(args);
var sqlite = builder.AddSQLite("my-database");
var exampleProject = builder.AddProject<Projects.ExampleProject>()
.WithReference(sqlite);
.NET .NET Aspire 이전 예제와 같이 앱 호스트에 SQLite 데이터베이스를 추가하는 경우 사용자 임시 디렉터리에 새 SQLite 데이터베이스 파일을 만듭니다.
또는 SQLite 데이터베이스 파일에 대한 사용자 지정 위치를 지정하려면 AddSqlite
메서드에 관련 인수를 제공합니다.
var sqlite = builder.AddSQLite("my-database", "C:\\Database\\Location", "my-database.db");
SQLiteWeb 리소스 추가
SQLite 리소스를 추가할 때 SQLite 데이터베이스와 상호 작용하는 웹 인터페이스를 제공하는 SQLiteWeb 리소스를 추가할 수도 있습니다. 이렇게 하려면 WithSqliteWeb
확장 메서드를 사용합니다.
var sqlite = builder.AddSQLite("my-database")
.WithSqliteWeb();
이 코드는 연결된 SQLite 데이터베이스와 상호 작용하는 웹 인터페이스를 제공하는 앱 호스트에 ghcr.io/coleifer/sqlite-web
기반으로 하는 컨테이너를 추가합니다. 각 SQLiteWeb 인스턴스는 단일 SQLite 데이터베이스에 연결됩니다. 즉, 여러 SQLiteWeb 인스턴스를 추가하는 경우 여러 SQLiteWeb 컨테이너가 있습니다.
SQLite 확장 추가
SQLite는 SQLite 데이터베이스에 추가할 수 있는 확장을 지원합니다. 확장은 NuGet 패키지를 통해 또는 디스크의 위치를 통해 제공할 수 있습니다.
WithNuGetExtension
또는 WithLocalExtension
확장 메서드를 사용하여 SQLite 데이터베이스에 확장을 추가합니다.
메모
SQLite 확장 지원은 실험적인 것으로 간주되며 CTASPIRE002
경고를 생성합니다.
Client 통합
.NET
.NET Aspire SQLite 클라이언트 통합을 시작하려면 📦 CommunityToolkit를 설치합니다.Aspire. Microsoft.Data.Sqlite는 클라이언트 사용 프로젝트에서 NuGet 패키지를, 즉 SQLite 클라이언트를 사용하는 애플리케이션에 대한 프로젝트입니다. SQLite 클라이언트 통합은 SQLite와 상호 작용하는 데 사용할 수 있는 SqliteConnection
인스턴스를 등록합니다.
dotnet add package CommunityToolkit.Aspire.Microsoft.Data.Sqlite
Sqlite 클라이언트 추가
클라이언트 사용 프로젝트의 Program.cs 파일에서 IHostApplicationBuilder에 대해 Microsoft.Extensions.Hosting.AspireSqliteExtensions.AddSqliteConnection
확장 메서드를 호출하여 종속성 주입 컨테이너를 통해 사용할 SqliteConnection
를 등록합니다. 메서드는 연결 이름 매개 변수를 사용합니다.
builder.AddSqliteConnection(connectionName: "sqlite");
팁
connectionName
매개 변수는 앱 호스트 프로젝트에서 SQLite 리소스를 추가할 때 사용되는 이름과 일치해야 합니다. 자세한 내용은 SQLite 리소스추가를 참조하세요.
작성기에서 SqliteConnection
추가한 후 종속성 주입을 사용하여 SqliteConnection
인스턴스를 가져올 수 있습니다. 예를 들어 예제 서비스에서 연결 개체를 검색하려면 생성자 매개 변수로 정의하고 ExampleService
클래스가 종속성 주입 컨테이너에 등록되어 있는지 확인합니다.
public class ExampleService(SqliteConnection connection)
{
// Use connection...
}
종속성 주입에 대한 자세한 내용은 .NET 종속성 주입참조하세요.
키 지정된 Sqlite 클라이언트 추가
여러 SqliteConnection
인스턴스를 서로 다른 연결 이름으로 등록하려는 경우가 있을 수 있습니다. 키 지정 Sqlite 클라이언트를 등록하려면 Microsoft.Extensions.Hosting.AspireSqliteExtensions.AddKeyedSqliteConnection
메서드를 호출합니다.
builder.AddKeyedSqliteConnection(name: "chat");
builder.AddKeyedSqliteConnection(name: "queue");
그런 다음 종속성 주입을 사용하여 SqliteConnection
인스턴스를 검색할 수 있습니다. 예를 들어 예제 서비스에서 연결을 검색하려면 다음을 수행합니다.
public class ExampleService(
[FromKeyedServices("chat")] SqliteConnection chatConnection,
[FromKeyedServices("queue")] SqliteConnection queueConnection)
{
// Use connections...
}
설정
SQLite 클라이언트 통합은 프로젝트의 요구 사항 및 규칙을 충족하는 여러 구성 접근 방식과 옵션을 제공합니다.
연결 문자열 사용
ConnectionStrings
구성 섹션에서 연결 문자열을 사용하는 경우 Microsoft.Extensions.Hosting.AspireSqliteExtensions.AddSqliteConnection
메서드를 호출할 때 연결 문자열의 이름을 제공할 수 있습니다.
builder.AddSqliteConnection("sqlite");
그런 다음 ConnectionStrings
구성 섹션에서 연결 문자열을 검색합니다.
{
"ConnectionStrings": {
"sqlite": "Data Source=C:\\Database\\Location\\my-database.db"
}
}
구성 공급자 사용
SQLite 클라이언트 통합은 Microsoft.Extensions.Configuration지원합니다.
Microsoft.Extensions.Hosting.SqliteConnectionSettings
을(를) Aspire:Sqlite:Client
키를 사용하여 appsettings.json 또는 다른 구성 공급자에서 로드합니다. 몇 가지 옵션을 구성하는 예제 appsettings.json:
{
"Aspire": {
"Sqlite": {
"Client": {
"ConnectionString": "Data Source=C:\\Database\\Location\\my-database.db",
"DisableHealthCheck": true
}
}
}
}
.NET Aspire