Mediarq.UnitOfWork 1.5.1

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

Mediarq.UnitOfWork

Commit a unit of work around a command that implements ITransactionalRequest. The behavior calls IUnitOfWork.SaveChangesAsync() after the handler, and only when the result is not a failure — so a handler just stages changes and a failed Result rolls nothing forward.

dotnet add package Mediarq.UnitOfWork

Usage

Implement IUnitOfWork over your data access and register it:

builder.Services.AddScoped<IUnitOfWork, MyUnitOfWork>();
builder.Services.AddMediarqUnitOfWork(); // after AddMediarq / AddMediarqCore
public record CreateOrder(string Customer) : ICommand<Result<Guid>>, ITransactionalRequest;

public class CreateOrderHandler(IRepository repo) : ICommandHandler<CreateOrder, Result<Guid>>
{
    public Task<Result<Guid>> Handle(CreateOrder request, CancellationToken ct = default)
    {
        var id = repo.Add(/* ... */);     // staged; no SaveChanges here
        return Task.FromResult(Result.Success(id));
    }
}

Using EF Core? Mediarq.EntityFrameworkCore wires your DbContext as the IUnitOfWork in one call.

Learn more

Wiring extensions · Full README

MIT © Nicolas Rouffart

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  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 (2)

Showing the top 2 NuGet packages that depend on Mediarq.UnitOfWork:

Package Downloads
Mediarq

Lean meta-package bundling Mediarq.Core and the lightweight extensions: ASP.NET Core, FluentValidation, DataAnnotations, Caching, Diagnostics and UnitOfWork. Heavy or opinionated integrations (EntityFrameworkCore, OpenTelemetry, MassTransit, Polly) ship as separate packages — install them explicitly when you need them.

Mediarq.EntityFrameworkCore

EF Core integration for Mediarq: an IUnitOfWork over a DbContext, so transactional commands are committed via SaveChanges.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.5.1 191 7/26/2026
1.5.0 158 7/26/2026
1.4.0 227 7/24/2026
1.3.0 242 7/24/2026
1.2.0 151 7/24/2026
1.1.0 150 7/24/2026
1.0.0 337 6/27/2026