Franz.Common.Messaging.EntityFramework 3.0.0

dotnet add package Franz.Common.Messaging.EntityFramework --version 3.0.0
                    
NuGet\Install-Package Franz.Common.Messaging.EntityFramework -Version 3.0.0
                    
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="Franz.Common.Messaging.EntityFramework" Version="3.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Franz.Common.Messaging.EntityFramework" Version="3.0.0" />
                    
Directory.Packages.props
<PackageReference Include="Franz.Common.Messaging.EntityFramework" />
                    
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 Franz.Common.Messaging.EntityFramework --version 3.0.0
                    
#r "nuget: Franz.Common.Messaging.EntityFramework, 3.0.0"
                    
#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 Franz.Common.Messaging.EntityFramework@3.0.0
                    
#: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=Franz.Common.Messaging.EntityFramework&version=3.0.0
                    
Install as a Cake Addin
#tool nuget:?package=Franz.Common.Messaging.EntityFramework&version=3.0.0
                    
Install as a Cake Tool

Franz.Common.Messaging.EntityFramework

Provider selection and persistence registration for messaging storage, with EF-specific repository and behavior setup for relational contexts.

Overview

Provider selection and persistence registration for messaging storage, with EF-specific repository and behavior setup for relational contexts.

Installation

dotnet add package Franz.Common.Messaging.EntityFramework

Registration API

The current entry point is AddDatabase<TDbContext>(IHostEnvironment, IConfiguration) in Franz.Common.Messaging.EntityFramework.Extensions, constrained to DbContextBase.

using Franz.Common.Messaging.EntityFramework.Extensions;

builder.Services.AddDatabase<AppDbContext>(
    builder.Environment,
    builder.Configuration);

The method reads Database:Provider and currently switches on:

Value Registration
mariadb MariaDB EF provider
postgres PostgreSQL EF provider
sqlserver SQL Server EF provider
mongo Mongo context registration
cosmos Cosmos context registration

Provider matching is case-insensitive because the value is lower-cased before the switch. Unsupported or missing values throw InvalidOperationException.

Current implementation caveats:

  • The exception text also lists Oracle, and IsRelational includes Oracle, but the switch has no Oracle branch. Oracle is therefore not selectable through this method as currently implemented.
  • The Mongo and Cosmos branches register the base MongoDbContext and CosmosDbContextBase types rather than using the generic TDbContext argument. Do not assume a custom generic context is registered by those branches.
  • The IHostEnvironment parameter is not used by the implementation.

For relational providers, the method additionally registers generic entity repositories and EF behaviors. The Mongo and Cosmos branches do not receive those EF-specific additions.

Transaction filter

The package's TransactionFilter implements IAsyncMessageActionFilter, not an MVC action filter. It checks whether the injected EF DbContext already has a current transaction after the message action executes; it commits when no exception is recorded and rolls back when one is recorded. It does not begin a transaction itself.

Persistence semantics

Do not treat this package as a single interchangeable outbox implementation across all providers. Relational persistence uses EF registration and its context/repository behavior. Mongo and Cosmos use their provider-specific context implementations. Verify message-store durability, transaction boundaries, retry behavior, and duplicate handling against the actual provider and messaging host.

Configuration

Keep provider and connection settings in environment-specific configuration or a secret provider. Integration-test the selected provider with the same major dependency versions and topology used in production.

License

MIT. See LICENSE.

Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
3.0.0 0 11/10/2026
2.3.4 341 11/1/2026
2.3.3 308 10/28/2026
2.3.2 95 10/27/2026
2.3.1 158 10/26/2026
2.3.0 184 7/21/2026
2.2.19 130 7/19/2026
2.2.18 128 7/19/2026
2.2.17 131 7/12/2026
2.2.16 133 7/2/2026
2.2.15 133 6/29/2026
2.2.14 131 6/29/2026
2.2.13 139 6/29/2026
2.2.12 126 6/28/2026
2.2.11 130 6/28/2026
2.2.10 138 6/28/2026
2.2.9 133 6/28/2026
2.2.8 129 6/28/2026
2.2.7 137 6/7/2026
2.2.6 140 6/6/2026
Loading failed