IronAlpine.Data.EFCore.Modeling 2.1.1

There is a newer version of this package available.
See the version list below for details.
dotnet add package IronAlpine.Data.EFCore.Modeling --version 2.1.1
                    
NuGet\Install-Package IronAlpine.Data.EFCore.Modeling -Version 2.1.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="IronAlpine.Data.EFCore.Modeling" Version="2.1.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="IronAlpine.Data.EFCore.Modeling" Version="2.1.1" />
                    
Directory.Packages.props
<PackageReference Include="IronAlpine.Data.EFCore.Modeling" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add IronAlpine.Data.EFCore.Modeling --version 2.1.1
                    
#r "nuget: IronAlpine.Data.EFCore.Modeling, 2.1.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package IronAlpine.Data.EFCore.Modeling@2.1.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=IronAlpine.Data.EFCore.Modeling&version=2.1.1
                    
Install as a Cake Addin
#tool nuget:?package=IronAlpine.Data.EFCore.Modeling&version=2.1.1
                    
Install as a Cake Tool

IronAlpine.Data.EFCore.Modeling

Why

This package is the EF Core schema contribution runtime used by multiple IronAlpine packages. It removes hidden coupling by hosting model contributor contracts and execution in a small foundation package.

What It Provides

  • IModelContributor contract for modular schema extensions.
  • IronAlpineModelCustomizer that executes all registered contributors.
  • AddIronAlpineDataEfCoreModeling() registration extension.
  • Startup validation marker used by higher-level packages.

Installation

dotnet add package IronAlpine.Data.EFCore.Modeling

Program.cs

builder.Services.AddIronAlpineDataEfCoreModeling();

Extension API

  • AddIronAlpineDataEfCoreModeling(IServiceCollection services) : Registers the EF model customizer and validation marker.

Contributor Pattern

public sealed class MyProjectionContributor : IModelContributor
{
    public void Contribute(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity<MyProjection>(entity =>
        {
            entity.ToTable("MyProjections");
            entity.HasKey(x => x.Id);
        });
    }
}

builder.Services.AddSingleton<IModelContributor, MyProjectionContributor>();

Combinations

  • With IronAlpine.Data.EFCore: repository/UoW + contributor runtime.
  • With IronAlpine.Messaging.InboxOutbox.EFCore: inbox/outbox/deadletter tables.
  • With IronAlpine.Security.Authorization.EFCore: permission projection table.
  • With IronAlpine.Caching.Redis: cache settings table contribution.

Troubleshooting

  • Symptom: contributor table not created. : Ensure AddIronAlpineDataEfCoreModeling() is called in the container used by your DbContext.
  • Symptom: startup validation error from messaging/security/caching EF package. : Add this package and ensure your EF DbContext registration uses the same service provider.

Notes

This package only provides schema composition runtime. It does not provide repositories, transactions, or unit of work.

Configuration Deep Dive

When a package exposes options classes, use builder.Configuration binding and keep values explicit per environment.

Common guidance:

  • Prefer explicit values in production.
  • Keep retries/timeouts conservative; tune with telemetry.
  • Enable startup validation in non-development environments.
  • Fail fast when required dependencies are missing.

Integration Patterns

Pattern A: API service with EF + Messaging

  1. Register EF provider package.
  2. Register messaging inbox/outbox package.
  3. Register mediator and behavior order.
  4. Enable health readiness checks for DB and broker.

Pattern B: Read-heavy service with Dapper + Messaging

  1. Register Dapper data package.
  2. Register messaging package with consumer enabled.
  3. Add observability and structured logging.

Pattern C: Security-focused service

  1. Register security ASP.NET package.
  2. Add policy catalog or resolver.
  3. Register authorization EFCore projection package only where needed.

Options Checklist

Use this checklist when configuring any IronAlpine package:

  • Required connection strings present.
  • Feature flags intentional (Enable* values reviewed).
  • Retry and timeout values match SLO expectations.
  • Startup validation behavior understood.
  • Environment-specific defaults are overridden in production.

Troubleshooting Matrix

  • Startup failure with validation error : A required dependency package or config value is missing. Check package registrations and bound options sections.
  • Background workers not starting : Verify execution mode, Enable* flags, and hosted services registration.
  • Policy/authorization mismatch : Check claim types, policy naming strategy, and catalog entries.
  • Cache stale or no-hit behavior : Validate key generation, invalidation path, and distributed lock configuration.
  • Messaging duplicate handling issues : Verify event-id propagation and idempotency key construction.

Best-Practice Notes

  • Keep handler logic deterministic and side-effect boundaries explicit.
  • Keep IQueryable usage inside application handlers/services.
  • Keep transaction save boundaries in handlers where business intent is clear.
  • Prefer explicit topic policy metadata for critical events.
Product Compatible and additional computed target framework versions.
.NET net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (4)

Showing the top 4 NuGet packages that depend on IronAlpine.Data.EFCore.Modeling:

Package Downloads
IronAlpine.Data.EFCore

Entity Framework Core implementation for IronAlpine data abstractions with repositories, interceptors, enumeration mapping, and resilience integration.

IronAlpine.Caching.Redis

Redis implementation for IronAlpine.Caching with EF Core-backed cache settings, pub/sub invalidation for multi-pod deployments, and table contributor support.

IronAlpine.EventBus.Kafka

Deterministic single-package Kafka event bus with inbox-first persistence and replay support.

IronAlpine.Security

Unified IronAlpine security package with abstractions, JWT/ASP.NET Core authorization integration, and EF Core permission projection store.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
2.1.2 926 4/14/2026
2.1.1 111 4/10/2026
2.1.0 1,234 4/8/2026
2.0.10 118 4/8/2026
2.0.7 668 4/4/2026
Loading failed

Stable mediator release with request/response, notification publish strategies, streaming, and dependency injection integration.