.NET .NET Aspire Community Toolkit SQLite tümleştirmesi
Içerir: Barındırma tümleştirmesi ve
Client tümleştirmesi
Not
Bu tümleştirme, .NET.NET Aspire Topluluk Araç Seti'nin bir parçasıdır ve resmi olarak .NET.NET Aspire ekibi tarafından desteklenmez.
SQLite, uygulamalarda yerel veri depolama için yaygın olarak kullanılan hafif, sunucusuz, bağımsız bir SQL veritabanı altyapısıdır.
.NET Aspire SQLite tümleştirmesi, .NET Aspire uygulamalarınızdaki SQLite veritabanlarını kullanmanın ve bunlara Microsoft.Data.Sqlite
istemcisi aracılığıyla erişmenin bir yolunu sağlar.
Barındırma entegrasyonu
SQLite barındırma tümleştirmesi, SQLiteResource
türü olarak bir SQLite veritabanını modeller ve veritabanı dosyasını belirtilen konumda oluşturur. Bu türlere ve API'lere erişim sağlamak ve 📦 CommunityToolkit,Aspire, Hosting.SQLite NuGet paketini uygulama konağı projesine eklemek için.
dotnet add package CommunityToolkit.Aspire.Hosting.SQLite
Daha fazla bilgi için bkz. dotnet add package veya .NET uygulamalarında paket bağımlılıklarını yönetme.
SQLite kaynağı ekleme
Uygulama ana bilgisayarı projesinde, SQLite veritabanını uygulama oluşturucuya eklemek için AddSQLite
uzantı yöntemini kullanarak SQLite tümleştirmesini kaydedin ve tüketin.
var builder = DistributedApplication.CreateBuilder(args);
var sqlite = builder.AddSQLite("my-database");
var exampleProject = builder.AddProject<Projects.ExampleProject>()
.WithReference(sqlite);
.NET .NET Aspire önceki örnekte gösterildiği gibi uygulama konağına bir SQLite veritabanı eklediğinde, kullanıcılar geçici dizininde yeni bir SQLite veritabanı dosyası oluşturur.
Alternatif olarak, SQLite veritabanı dosyası için özel bir konum belirtmek istiyorsanız, AddSqlite
yöntemine uygun bağımsız değişkenleri sağlayın.
var sqlite = builder.AddSQLite("my-database", "C:\\Database\\Location", "my-database.db");
SQLiteWeb kaynağı ekleme
SQLite kaynağını eklerken, SQLite veritabanıyla etkileşime geçmek için bir web arabirimi sağlayan SQLiteWeb kaynağını da ekleyebilirsiniz. Bunu yapmak için WithSqliteWeb
uzantısı yöntemini kullanın.
var sqlite = builder.AddSQLite("my-database")
.WithSqliteWeb();
Bu kod, bağlı olduğu SQLite veritabanıyla etkileşime geçmek için bir web arabirimi sağlayan uygulama konağına ghcr.io/coleifer/sqlite-web
temel alan bir kapsayıcı ekler. Her SQLiteWeb örneği tek bir SQLite veritabanına bağlanır; başka bir deyişle, birden çok SQLiteWeb örneği eklerseniz birden çok SQLiteWeb kapsayıcısı olur.
SQLite uzantıları ekleme
SQLite, SQLite veritabanına eklenebilen uzantıları destekler. Uzantılar bir NuGet paketi veya disk üzerindeki bir konum aracılığıyla sağlanabilir. SQLite veritabanına uzantı eklemek için WithNuGetExtension
veya WithLocalExtension
uzantı yöntemlerini kullanın.
Not
SQLite uzantıları desteği deneysel olarak kabul edilir ve CTASPIRE002
bir uyarı üretir.
Client tümleştirmesi
İstemci tarafında, yani SQLite istemcisini kullanan uygulamanın projesinde, .NET.NET Aspire SQLite istemci tümleştirmesini kullanmaya başlamak için 📦 CommunityToolkit'i veAspireMicrosoft.Data.Sqlite NuGet paketini yükleyin. SQLite istemci tümleştirmesi, SQLite ile etkileşime geçmek için kullanabileceğiniz bir SqliteConnection
örneği kaydeder.
dotnet add package CommunityToolkit.Aspire.Microsoft.Data.Sqlite
Sqlite istemcisi ekle
Herhangi bir IHostApplicationBuilder üzerinde Microsoft.Extensions.Hosting.AspireSqliteExtensions.AddSqliteConnection
uzantı yöntemini çağırarak, istemci tüketen projenizdeki Program.cs dosyasında, bağımlılık enjeksiyon kapsayıcısı aracılığıyla kullanılmak üzere bir SqliteConnection
kaydedin. yöntemi bir bağlantı adı parametresi alır.
builder.AddSqliteConnection(connectionName: "sqlite");
Bahşiş
connectionName
parametresi, uygulama ana bilgisayar projesine SQLite kaynağı eklenirken kullanılan adla eşleşmelidir. Daha fazla bilgi için bkz. SQLite kaynağı ekleme.
Oluşturucuya SqliteConnection
ekledikten sonra bağımlılık ekleme kullanarak SqliteConnection
örneğini alabilirsiniz. Örneğin, örnek bir hizmetten bağlantı nesnenizi almak için bunu bir oluşturucu parametresi olarak tanımlayın ve ExampleService
sınıfının bağımlılık ekleme kapsayıcısına kayıtlı olduğundan emin olun:
public class ExampleService(SqliteConnection connection)
{
// Use connection...
}
Bağımlılık ekleme hakkında daha fazla bilgi için bkz. .NET bağımlılık ekleme.
Anahtarlı Sqlite istemcisi ekleme
Farklı bağlantı adlarına sahip birden çok SqliteConnection
örneğini kaydetmek istediğiniz durumlar olabilir. Anahtarlı Sqlite istemcilerini kaydetmek için Microsoft.Extensions.Hosting.AspireSqliteExtensions.AddKeyedSqliteConnection
yöntemini çağırın:
builder.AddKeyedSqliteConnection(name: "chat");
builder.AddKeyedSqliteConnection(name: "queue");
Daha sonra bağımlılık ekleme kullanarak SqliteConnection
örneklerini alabilirsiniz. Örneğin, bağlantıyı örnek bir hizmetten almak için:
public class ExampleService(
[FromKeyedServices("chat")] SqliteConnection chatConnection,
[FromKeyedServices("queue")] SqliteConnection queueConnection)
{
// Use connections...
}
Konfigürasyon
SQLite istemci tümleştirmesi, projenizin gereksinimlerini ve kurallarını karşılamak için birden çok yapılandırma yaklaşımı ve seçeneği sağlar.
Bağlantı dizesi kullanma
ConnectionStrings
yapılandırma bölümünden bir bağlantı dizesi kullanırken, Microsoft.Extensions.Hosting.AspireSqliteExtensions.AddSqliteConnection
yöntemini çağırırken bağlantı dizesinin adını sağlayabilirsiniz:
builder.AddSqliteConnection("sqlite");
Ardından bağlantı dizesi ConnectionStrings
yapılandırma bölümünden alınır.
{
"ConnectionStrings": {
"sqlite": "Data Source=C:\\Database\\Location\\my-database.db"
}
}
Yapılandırma sağlayıcılarını kullanma
SQLite istemci tümleştirmesi Microsoft.Extensions.Configurationdestekler.
Microsoft.Extensions.Hosting.SqliteConnectionSettings
'ı, Aspire:Sqlite:Client
anahtarını kullanarak appsettings.json veya diğer yapılandırma sağlayıcılarından yükler. Bazı seçenekleri yapılandıran örnek appsettings.json:
{
"Aspire": {
"Sqlite": {
"Client": {
"ConnectionString": "Data Source=C:\\Database\\Location\\my-database.db",
"DisableHealthCheck": true
}
}
}
}
.NET Aspire