Raycynix.Extensions.Database.Abstractions
2.0.0
dotnet add package Raycynix.Extensions.Database.Abstractions --version 2.0.0
NuGet\Install-Package Raycynix.Extensions.Database.Abstractions -Version 2.0.0
<PackageReference Include="Raycynix.Extensions.Database.Abstractions" Version="2.0.0" />
<PackageVersion Include="Raycynix.Extensions.Database.Abstractions" Version="2.0.0" />
<PackageReference Include="Raycynix.Extensions.Database.Abstractions" />
paket add Raycynix.Extensions.Database.Abstractions --version 2.0.0
#r "nuget: Raycynix.Extensions.Database.Abstractions, 2.0.0"
#:package Raycynix.Extensions.Database.Abstractions@2.0.0
#addin nuget:?package=Raycynix.Extensions.Database.Abstractions&version=2.0.0
#tool nuget:?package=Raycynix.Extensions.Database.Abstractions&version=2.0.0
Raycynix.Extensions.Database.Abstractions
Contracts and configuration models shared by the Raycynix database packages.
What It Provides
DatabaseConfigurationandConnectionConfigurationIDatabaseBuilderIDatabaseInitializerIDatabaseProviderRegistrationIDatabaseModelAssemblyRegistryIDatabaseObservabilityIConfiguratorandIGenericConfigurator<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(DatabaseConfiguration configuration);
string ResolveConnectionString(
DatabaseConfiguration configuration,
IServiceProvider serviceProvider);
void Configure(
DbContextOptionsBuilder options,
string connectionString,
DatabaseConfiguration configuration,
Assembly migrationsAssembly,
IServiceProvider serviceProvider);
}
Common validation stays in DatabaseConfiguration. 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.
| 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.7)
- Microsoft.EntityFrameworkCore.Relational (>= 10.0.7)
NuGet packages (7)
Showing the top 5 NuGet packages that depend on Raycynix.Extensions.Database.Abstractions:
| Package | Downloads |
|---|---|
|
Raycynix.Extensions.Database
Core Raycynix EF Core database infrastructure with shared DbContext registration, custom context support, model assembly discovery, provider validation, initialization, and model-cache integration. |
|
|
Raycynix.Extensions.Database.Hosting
Generic host startup integration for running Raycynix database initialization through IDatabaseInitializer in workers, services, and console applications. |
|
|
Raycynix.Extensions.Database.PostgreSql
PostgreSQL provider integration for Raycynix.Extensions.Database with AddPostgreSql registration, provider-specific validation, Npgsql connection-string composition, and EF Core UseNpgsql configuration. |
|
|
Raycynix.Extensions.Database.MsSql
SQL Server provider integration for Raycynix.Extensions.Database with AddMsSql registration, provider-specific validation, connection-string composition, and EF Core UseSqlServer configuration. |
|
|
Raycynix.Extensions.Database.MySql
MySQL provider integration for Raycynix.Extensions.Database with AddMySql registration, provider-specific validation, connection-string composition, and EF Core UseMySQL configuration. |
GitHub repositories
This package is not used by any popular GitHub repositories.
Added provider-specific validation contracts and shared database configuration, provider, builder, model assembly registry, configurator, and observability abstractions.