Raycynix.Extensions.Database.Abstractions
3.0.0
dotnet add package Raycynix.Extensions.Database.Abstractions --version 3.0.0
NuGet\Install-Package Raycynix.Extensions.Database.Abstractions -Version 3.0.0
<PackageReference Include="Raycynix.Extensions.Database.Abstractions" Version="3.0.0" />
<PackageVersion Include="Raycynix.Extensions.Database.Abstractions" Version="3.0.0" />
<PackageReference Include="Raycynix.Extensions.Database.Abstractions" />
paket add Raycynix.Extensions.Database.Abstractions --version 3.0.0
#r "nuget: Raycynix.Extensions.Database.Abstractions, 3.0.0"
#:package Raycynix.Extensions.Database.Abstractions@3.0.0
#addin nuget:?package=Raycynix.Extensions.Database.Abstractions&version=3.0.0
#tool nuget:?package=Raycynix.Extensions.Database.Abstractions&version=3.0.0
Raycynix.Extensions.Database.Abstractions
Contracts and configuration models shared by the Raycynix database packages.
What It Provides
DatabaseOptionsandConnectionOptionsIDatabaseBuilderIDatabaseInitializerIDatabaseProviderRegistrationIDatabaseModelAssemblyRegistryIDatabaseObservabilityIConfiguratorandIGenericConfigurator<T>DatabaseTableAttribute
Provider Contracts
Provider packages implement IDatabaseProviderRegistration to validate provider-specific settings, resolve a connection string, and configure EF Core provider options.
public interface IDatabaseProviderRegistration
{
string ProviderName { get; }
void Validate(DatabaseOptions configuration);
string ResolveConnectionString(
DatabaseOptions configuration,
IServiceProvider serviceProvider);
void Configure(
DbContextOptionsBuilder options,
string connectionString,
DatabaseOptions configuration,
Assembly migrationsAssembly,
IServiceProvider serviceProvider);
}
Common validation stays in DatabaseOptions. Provider-specific rules, such as whether Host or Username is required, belong in the provider implementation.
Configurators
Reusable packages can contribute EF Core mappings through configurators:
[DatabaseTable("orders")]
public sealed class OrderConfigurator : IGenericConfigurator<Order>
{
public Type Type => typeof(Order);
public Type[] DependsOn => [];
public string ModelCacheKey => typeof(Order).FullName!;
public void Configure(ModelBuilder modelBuilder)
{
var entity = modelBuilder.Entity<Order>();
entity.ToTable("orders");
entity.HasKey(static order => order.Id);
}
public void Seed(ModelBuilder modelBuilder)
{
}
}
If a configurator changes the model shape from runtime values, include those values in ModelCacheKey so EF Core does not reuse an incompatible cached model.
Usage
This package is intended for provider packages, optional feature packages, and reusable modules that need database contracts without depending on the core runtime registration package.
Migrating From 2.x
DatabaseConfigurationis nowDatabaseOptions.ConnectionConfigurationis nowConnectionOptions.- Both types are available from
Raycynix.Extensions.Database.Abstractions.Options. - Connection properties are now settable from registration callbacks as well as configuration binding.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Microsoft.EntityFrameworkCore (>= 10.0.10)
- Microsoft.EntityFrameworkCore.Relational (>= 10.0.10)
NuGet packages (8)
Showing the top 5 NuGet packages that depend on Raycynix.Extensions.Database.Abstractions:
| Package | Downloads |
|---|---|
|
Raycynix.Extensions.Database
Core Raycynix EF Core infrastructure with typed DatabaseOptions, shared and custom DbContext registration, provider validation, initialization, and model discovery. |
|
|
Raycynix.Extensions.Database.Hosting
Generic host integration for validated Raycynix database creation and migration initialization through IDatabaseInitializer. |
|
|
Raycynix.Extensions.Database.PostgreSql
PostgreSQL EF Core integration with typed PostgreSqlOptions, validated pooling, Npgsql connection-string composition, retries, and migrations. |
|
|
Raycynix.Extensions.Database.MySql
MySQL EF Core integration with typed MySqlOptions, validated timeouts, connection-string composition, pooling, retries, and migrations. |
|
|
Raycynix.Extensions.Database.Sqlite
SQLite EF Core integration with typed SqliteOptions, validated mode and cache settings, connection-string composition, and migrations. |
GitHub repositories
This package is not used by any popular GitHub repositories.
v3.0.0 renames database configuration contracts to DatabaseOptions and ConnectionOptions, moves them to the Options namespace, and makes connection settings mutable from setup callbacks.