Clywell.Core.Audit.EntityFramework 1.0.1

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

Clywell.Core.Audit

Audit trail abstractions and EF Core implementation for .NET — entity change tracking, manual audit logging, and pluggable audit persistence.

Installation

dotnet add package Clywell.Core.Audit

For automatic EF Core change tracking:

dotnet add package Clywell.Core.Audit.EntityFramework

Packages

Package Description
Clywell.Core.Audit Audit abstractions — models, interfaces, and direct audit API. Zero infrastructure dependency.
Clywell.Core.Audit.EntityFramework EF Core implementation — automatic change tracking via SaveChangesInterceptor.

Quick Start

Manual Audit Logging

services.AddAudit();
services.AddScoped<IAuditLogger, MyAuditLogger>();

Implement IAuditLogger to define where audit records are persisted:

public class MyAuditLogger : IAuditLogger
{
    public Task LogAsync(IReadOnlyList<AuditEntry> entries, CancellationToken ct)
    {
        // Persist to database, queue, file, etc.
        return Task.CompletedTask;
    }
}

Automatic EF Core Change Tracking

services.AddAudit(options =>
{
    options.AuditOnly<Order>();
    options.AuditOnly<Product>();
});
services.AddScoped<IAuditLogger, MyAuditLogger>();
services.AddAuditEntityFramework();

services.AddDbContext<AppDbContext>((sp, options) =>
{
    options.UseSqlServer(connectionString)
           .UseAuditInterceptor(sp);
});

Notes

  • IAuditLogger is required. Register your implementation in DI before writing audit records.
  • SaveChangesAsync is required for EF interception. Synchronous SaveChanges() is intentionally not supported by AuditSaveChangesInterceptor.
  • AddAuditEntityFramework() registers the interceptor; attach it to each DbContext with UseAuditInterceptor(sp).

Compatibility

  • .NET target: net10.0
  • EF integration dependency: Microsoft.EntityFrameworkCore

Key Concepts

  • Delta-only tracking: For Updated actions, only properties that actually changed are recorded.
  • Scoped resolution: The interceptor is a singleton but resolves IAuditLogger, IAuditUserProvider, and IAuditTimestampProvider per-invocation — safe for scoped dependencies.
  • Database-generated keys: For Created actions with identity columns, EntityId reflects the temporary key (e.g., "0") since interception occurs before the database assigns the final value.

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
1.0.1 295 3/15/2026
1.0.0 103 3/4/2026