Dzeta.Extensions.CQRS
1.0.0
Prefix Reserved
dotnet add package Dzeta.Extensions.CQRS --version 1.0.0
NuGet\Install-Package Dzeta.Extensions.CQRS -Version 1.0.0
<PackageReference Include="Dzeta.Extensions.CQRS" Version="1.0.0" />
<PackageVersion Include="Dzeta.Extensions.CQRS" Version="1.0.0" />
<PackageReference Include="Dzeta.Extensions.CQRS" />
paket add Dzeta.Extensions.CQRS --version 1.0.0
#r "nuget: Dzeta.Extensions.CQRS, 1.0.0"
#:package Dzeta.Extensions.CQRS@1.0.0
#addin nuget:?package=Dzeta.Extensions.CQRS&version=1.0.0
#tool nuget:?package=Dzeta.Extensions.CQRS&version=1.0.0
Dzeta.Extensions.CQRS
Utilities for connecting CQRS with EF Core and MediatR.
Features
- BaseEntity: domain events collection and
UpdatedAtmaintenance. - IDomainEvent: marker interface extending MediatR
INotification. - IUnitOfWork: abstraction for committing changes (
SaveChangesAsync). - CqrsDbContext: abstract context that dispatches domain events after persistence, with cycle protection and a virtual
MaxEventDispatchIterations.
Install
Add the package from NuGet (after publishing):
dotnet add package Dzeta.Extensions.CQRS
Usage
- Inherit your entities from
Dzeta.Extensions.CQRS.BaseEntityand raise events:
public sealed class Wallet : BaseEntity
{
public Guid Id { get; private set; }
public decimal Balance { get; private set; }
public void Deposit(decimal amount)
{
Balance += amount;
AddDomainEvent(new DepositHappened(Id, amount));
}
}
Implement events as
IDomainEventand MediatR handlers in your app layer.Derive your EF Core context from
CqrsDbContext<TContext>and callSaveChangesAsyncas usual. Events will be dispatched viaIPublisherafter each successful save until the queue is empty. OverrideMaxEventDispatchIterationsif needed.
Packaging
This project is configured to generate a NuGet package on build. Run:
dotnet build -c Release
Or to pack explicitly:
dotnet pack -c Release
License
MIT
| Product | Versions 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 was computed. 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 was computed. 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. |
-
net8.0
- MediatR (>= 13.0.0)
- Microsoft.EntityFrameworkCore (>= 9.0.8)
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 |
|---|---|---|
| 1.0.0 | 231 | 8/17/2025 |