RzR.DataVigil.EFCore
1.1.0.8085
dotnet add package RzR.DataVigil.EFCore --version 1.1.0.8085
NuGet\Install-Package RzR.DataVigil.EFCore -Version 1.1.0.8085
<PackageReference Include="RzR.DataVigil.EFCore" Version="1.1.0.8085" />
<PackageVersion Include="RzR.DataVigil.EFCore" Version="1.1.0.8085" />
<PackageReference Include="RzR.DataVigil.EFCore" />
paket add RzR.DataVigil.EFCore --version 1.1.0.8085
#r "nuget: RzR.DataVigil.EFCore, 1.1.0.8085"
#:package RzR.DataVigil.EFCore@1.1.0.8085
#addin nuget:?package=RzR.DataVigil.EFCore&version=1.1.0.8085
#tool nuget:?package=RzR.DataVigil.EFCore&version=1.1.0.8085
RzR.DataVigil hooks into EF Core interceptors and records property-level diffs on Create, Update, Delete (and optionally Read). It tags each audit record with the user, IP, correlation ID, trace ID. You get GDPR field-level controls too - masking, hashing, anonymization - both on write and on read. Supports SQL Server, PostgreSQL, MongoDB, or just flat JSON files for storage.
Features
- EF Core interceptor-based, so your entities don't need any changes
- Tracks Create, Update, Delete at the property level (old value vs new value)
- Read auditing too, if you want it - pulls table/column/ID info from executed SQL
- GDPR: mask, hash, anonymize, exclude, or write your own transform per field
- Retrieval access control by role or claim
- Ships with SQL Server, PostgreSQL, MongoDB, and file (JSON) storage providers. Or implement
IAuditStoreyourself - ASP.NET Core: grabs user + correlation IDs from
HttpContextautomatically. Console/worker apps: useAuditScopeContextinstead - Built-in retention service (runs daily, deletes old records)
AnonymizeByUserAsync()for right-to-erasure (GDPR Art. 17)- Opt entities in/out with
IAuditable, or exclude globally
┌───────────────────────────────────────────────────────────┐
│ Your Application │
│ DbContext (SaveChanges) ──► EF Core Interceptors │
└─────────────┬───────────────────────────┬─────────────────┘
│ │
▼ ▼
┌─────────────────────────┐ ┌───────────────────────────┐
│ Audit Pipeline │ │ User / Source / Corr. │
│ (enrichment + GDPR) │ ◄── │ Resolvers │
└─────────────┬───────────┘ └───────────────────────────┘
│
▼
┌───────────────────────────────────────────────────────────┐
│ IAuditStore │
│ ┌───────────┐ ┌──────────┐ ┌─────────┐ ┌───────────┐ │
│ │ SQL Server│ │PostgreSQL│ │ MongoDB │ │ File │ │
│ └───────────┘ └──────────┘ └─────────┘ └───────────┘ │
└───────────────────────────────────────────────────────────┘
Abstractions ◄── Core ◄── AspNetCore
▲
├── EFCore
│ ▲
│ ├── Storage.EfSqlServer
│ ├── Storage.EfPostgreSql
│ └── Storage.EfMongoDb
│
└── Storage.File
Quick Start
First, mark which entities should be audited:
using RzR.DataVigil.Abstractions.Contracts;
public class AbbDbContext : DbContext, IAuditableContext
{
}
public class Order : IAuditable
{
public Guid Id { get; set; }
public string CustomerName { get; set; }
public decimal Total { get; set; }
}
Then register everything in DI:
// Program.cs or Startup.cs
services.AddAuditTrail(options =>
{
options.EfCore.Intercept<AppDbContext>();
options.Storage.UseSqlServer(connectionString);
})
.Services
.AddAuditTrailEfCore()
.AddAuditTrailAspNetCore();
services.AddAuditTrailSqlServer();
And wire the interceptors into your DbContext registration:
services.AddDbContext<AppDbContext>((sp, opts) =>
{
opts.UseSqlServer(connectionString);
opts.AddAuditInterceptors(sp);
});
Any SaveChanges on entities implementing IAuditable will be captured from now on.
For more integration details and references, you can see the using documentation or consult the wiki.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. 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. |
| .NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.1 is compatible. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.1
- Microsoft.EntityFrameworkCore (>= 5.0.0)
- Microsoft.EntityFrameworkCore.Relational (>= 5.0.0)
- RzR.DataVigil.Core (>= 1.1.0.8085)
- System.Text.Json (>= 8.0.5)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on RzR.DataVigil.EFCore:
| Package | Downloads |
|---|---|
|
RzR.DataVigil.Storage.EfSqlServer
A .NET audit trail framework that automatically captures, protects, and stores every data change with built-in GDPR compliance, EF Core integration, and pluggable storage backends. |
|
|
RzR.DataVigil.Storage.EfPostgreSql
A .NET audit trail framework that automatically captures, protects, and stores every data change with built-in GDPR compliance, EF Core integration, and pluggable storage backends. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.1.0.8085 | 165 | 5/29/2026 |
| 1.0.0 | 178 | 4/20/2026 |