Raycynix.Extensions.Database.Abstractions
1.0.0
See the version list below for details.
dotnet add package Raycynix.Extensions.Database.Abstractions --version 1.0.0
NuGet\Install-Package Raycynix.Extensions.Database.Abstractions -Version 1.0.0
<PackageReference Include="Raycynix.Extensions.Database.Abstractions" Version="1.0.0" />
<PackageVersion Include="Raycynix.Extensions.Database.Abstractions" Version="1.0.0" />
<PackageReference Include="Raycynix.Extensions.Database.Abstractions" />
paket add Raycynix.Extensions.Database.Abstractions --version 1.0.0
#r "nuget: Raycynix.Extensions.Database.Abstractions, 1.0.0"
#:package Raycynix.Extensions.Database.Abstractions@1.0.0
#addin nuget:?package=Raycynix.Extensions.Database.Abstractions&version=1.0.0
#tool nuget:?package=Raycynix.Extensions.Database.Abstractions&version=1.0.0
Raycynix.Extensions.Database.Abstractions
Raycynix.Extensions.Database.Abstractions contains the contracts used by the Raycynix database packages.
What it contains
IDatabaseInitializerIConfiguratorIGenericConfigurator<T>DatabaseTableAttribute
IConfigurator describes both model configuration and the cache key fragment that identifies the model shape produced by that configurator. This allows reusable packages to contribute EF Core mappings without breaking shared model caching.
When a configurator changes the EF Core model shape dynamically, its ModelCacheKey must change as well. Static mappings can keep a stable key, while runtime-dependent mappings should include the runtime discriminator, such as a configured table name.
Purpose
This package exists so database-related contracts can be shared without depending on the full database implementation package.
Example
Reusable packages can define configurators without referencing the runtime registration package:
[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 current => current.Id);
}
public void Seed(ModelBuilder modelBuilder)
{
}
}
For runtime-dependent mappings, include the runtime value in ModelCacheKey:
public sealed class OrderConfigurator : IGenericConfigurator<Order>
{
private readonly OrdersDatabaseOptions options;
public OrderConfigurator(OrdersDatabaseOptions options)
{
this.options = options;
}
public Type Type => typeof(Order);
public Type[] DependsOn => [];
public string ModelCacheKey => $"{typeof(Order).FullName!}:{options.TableName}";
public void Configure(ModelBuilder modelBuilder)
{
var entity = modelBuilder.Entity<Order>();
entity.ToTable(options.TableName);
entity.HasKey(static current => current.Id);
}
public void Seed(ModelBuilder modelBuilder)
{
}
}
The application can then register the assembly containing that configurator through AddRaycynixDatabase(...).AddAssembly<TMarker>().
| 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.5)
- Microsoft.Extensions.DependencyInjection (>= 10.0.5)
- Microsoft.Extensions.Logging (>= 10.0.5)
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.
See the repository changelog and release history for package-specific changes and breaking updates.