Lyo.ChangeTracker
1.0.2
dotnet add package Lyo.ChangeTracker --version 1.0.2
NuGet\Install-Package Lyo.ChangeTracker -Version 1.0.2
<PackageReference Include="Lyo.ChangeTracker" Version="1.0.2" />
<PackageVersion Include="Lyo.ChangeTracker" Version="1.0.2" />
<PackageReference Include="Lyo.ChangeTracker" />
paket add Lyo.ChangeTracker --version 1.0.2
#r "nuget: Lyo.ChangeTracker, 1.0.2"
#:package Lyo.ChangeTracker@1.0.2
#addin nuget:?package=Lyo.ChangeTracker&version=1.0.2
#tool nuget:?package=Lyo.ChangeTracker&version=1.0.2
Lyo.ChangeTracker
Generic entity change history built around Lyo.EntityReference.Models.EntityRef. Record property-level changes for any entity type without coupling the tracker to a specific aggregate.
Features
ChangeRecordfor entity-scoped history with old values, changed values, optional actor (FromEntityat API;from_entity_*in DB), and optionalChangeType/MessageIChangeTrackerfor recording, querying, and deleting change historyNullChangeTracker.Instance(singleton) when change tracking is optional — all writes/queries are no-ops
Examples
Quick Start
using Lyo.ChangeTracker;
using Lyo.EntityReference.Models;
var orderRef = EntityRef.ForGuid("Order", Guid.Parse("11111111-1111-1111-1111-111111111111"));
var userRef = EntityRef.ForKey("User", "123");
var change = new ChangeRecord(
orderRef,
new Dictionary<string, object?> { ["Status"] = "Draft" },
new Dictionary<string, object?> { ["Status"] = "Submitted" }) {
FromEntity = userRef,
ChangeType = "Updated",
Message = "Order submitted"
};
await changeTracker.RecordChangeAsync(change);
var history = await changeTracker.GetForEntityAsync(orderRef);
IChangeTracker surface
| Method | Purpose |
|---|---|
RecordChange / RecordChangeAsync |
Record a single ChangeRecord. |
RecordChanges / RecordChangesAsync |
Record many records in a single batch (skips empty collections). |
GetByIdAsync(Guid id, …) |
Look up a recorded change by its ChangeRecord.Id. |
GetForEntityAsync(EntityRef forEntity, …) |
Returns history for a specific entity, newest first. |
GetForEntityTypeAsync(string forEntityType, string? forEntityId = null, …) |
Returns history scoped by entity type, optionally filtered by id. |
DeleteForEntityAsync(EntityRef forEntity, …) |
Deletes all history rows recorded against a specific entity. |
The base abstraction is purely a contract — health/diagnostics are added by adapter packages (see Lyo.ChangeTracker.Postgres).
Dependencies
Generated from ProjectReference / PackageReference (same model as docs/Lyo.ProjectGraph.html).
Lyo.EntityReference.Models— (direct, lyo)System.Text.Json10.0.5— (direct, microsoft, netstandard2.0)Lyo.Common— (transitive, lyo)Lyo.Exceptions— (transitive, lyo)Microsoft.Extensions.Logging.Abstractions10.0.5— (transitive, microsoft)System.Memory4.6.3— (transitive, microsoft, netstandard2.0)
| 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 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. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. 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.0
- Lyo.EntityReference.Models (>= 1.0.2)
- System.Text.Json (>= 10.0.5)
-
net10.0
- Lyo.EntityReference.Models (>= 1.0.2)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Lyo.ChangeTracker:
| Package | Downloads |
|---|---|
|
Lyo.ChangeTracker.Postgres
PostgreSQL implementation of Lyo.ChangeTracker using Entity Framework Core. Persists generic EntityRef-based change history with migrations support. |
GitHub repositories
This package is not used by any popular GitHub repositories.