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
<PackageReference Include="Franz.Common.Messaging.EntityFramework" Version="3.0.0" />
<PackageVersion Include="Franz.Common.Messaging.EntityFramework" Version="3.0.0" />
<PackageReference Include="Franz.Common.Messaging.EntityFramework" />
paket add Franz.Common.Messaging.EntityFramework --version 3.0.0
#r "nuget: Franz.Common.Messaging.EntityFramework, 3.0.0"
#:package Franz.Common.Messaging.EntityFramework@3.0.0
#addin nuget:?package=Franz.Common.Messaging.EntityFramework&version=3.0.0
#tool nuget:?package=Franz.Common.Messaging.EntityFramework&version=3.0.0
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
IsRelationalincludes 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
MongoDbContextandCosmosDbContextBasetypes rather than using the genericTDbContextargument. Do not assume a custom generic context is registered by those branches. - The
IHostEnvironmentparameter 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 | 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
- Franz.Common.AzureCosmosDB (>= 3.0.0)
- Franz.Common.EntityFramework.MariaDB (>= 3.0.0)
- Franz.Common.EntityFramework.PostGres (>= 3.0.0)
- Franz.Common.EntityFramework.SQLServer (>= 3.0.0)
- Franz.Common.Messaging.Hosting (>= 3.0.0)
- Franz.Common.MongoDB (>= 3.0.0)
- Microsoft.EntityFrameworkCore (>= 10.0.14)
- Microsoft.EntityFrameworkCore.Relational (>= 10.0.14)
- SharpCompress (>= 0.50.7)
- Snappier (>= 1.3.1)
- System.Security.Cryptography.Pkcs (>= 10.0.13)
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 |