Xtensive.Orm.Tracking
7.2.0
dotnet add package Xtensive.Orm.Tracking --version 7.2.0
NuGet\Install-Package Xtensive.Orm.Tracking -Version 7.2.0
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="Xtensive.Orm.Tracking" Version="7.2.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Xtensive.Orm.Tracking" Version="7.2.0" />
<PackageReference Include="Xtensive.Orm.Tracking" />
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 Xtensive.Orm.Tracking --version 7.2.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Xtensive.Orm.Tracking, 7.2.0"
#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 Xtensive.Orm.Tracking@7.2.0
#: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=Xtensive.Orm.Tracking&version=7.2.0
#tool nuget:?package=Xtensive.Orm.Tracking&version=7.2.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Xtensive.Orm.Tracking
Summary
Provides tracking/auditing funtionality on Session/Domain level.
Prerequisites
DataObjects.Net 7.1.x or later (http://dataobjects.net)
Implementation
- Include types from Xtensive.Orm.Tracking assembly into the domain:
<Xtensive.Orm>
<domains>
<domain ... >
<types>
<add assembly="your assembly"/>
<add assembly="Xtensive.Orm.Tracking"/>
</types>
</domain>
</domains>
</Xtensive.Orm>
- To track changes on
Sessionlevel obtain an instance ofISessionTrackingMonitorthroughSession.Services.Get<ISessionTrackingMonitor>()method; to track changes onDomainlevel (from all sessions) obtain an instance ofIDomainTrackingMonitorthroughDomain.Services.Get<IDomainTrackingMonitor>()method - Subscribe to
TrackingCompletedevent. After each tracked transaction is committed you receive theTrackingCompletedEventArgsobject. TrackingCompletedEventArgs.Changescontains a collection ofITrackingItemobjects, each of them represents a set of changes that occured to anEntitywithin the transaction committed.
Demo
First, subscribe to the TrackingCompleted event of ISessionTrackingMonitor / IDomainTrackingMonitor
var monitor = Domain.Services.Get<IDomainTrackingMonitor>();
monitor.TrackingCompleted += TrackingCompletedListener;
Then, do some changes to persistent entities
using (var session = Domain.OpenSession()) {
using (var t = session.OpenTransaction()) {
var e = new MyEntity(session);
e.Text = "some text";
t.Complete();
}
}
And handle TrackingCompleted event call and do whatever you want with tracked changes.
private void TrackingCompletedListener(object sender, TrackingCompletedEventArgs e)
{
foreach (var change in e.Changes) {
Console.WriteLine(change.Key);
Console.WriteLine(change.State);
foreach (var value in change.ChangedValues) {
Console.WriteLine(value.Field.Name);
Console.WriteLine(value.OriginalValue);
Console.WriteLine(value.NewValue);
}
}
}
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net6.0 is compatible. 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 is compatible. 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 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. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net6.0
- System.Configuration.ConfigurationManager (>= 6.0.1)
- Xtensive.Orm (>= 7.2.0)
-
net7.0
- System.Configuration.ConfigurationManager (>= 8.0.0)
- Xtensive.Orm (>= 7.2.0)
-
net8.0
- System.Configuration.ConfigurationManager (>= 8.0.0)
- Xtensive.Orm (>= 7.2.0)
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 |
|---|---|---|
| 7.2.0 | 478 | 11/16/2025 |
| 7.2.0-RC | 126 | 11/1/2025 |
| 7.2.0-Beta-2 | 206 | 4/27/2025 |
| 7.2.0-Beta-1 | 207 | 12/28/2023 |
| 7.1.6 | 252 | 10/29/2025 |
| 7.1.5 | 669 | 4/10/2025 |
| 7.1.4 | 409 | 1/27/2025 |
| 7.1.2 | 339 | 10/18/2024 |
| 7.1.1 | 4,561 | 11/14/2023 |
| 7.1.0 | 437 | 4/12/2023 |
| 7.1.0-RC | 299 | 3/9/2023 |
| 7.0.7 | 206 | 10/28/2025 |
| 7.0.6 | 208 | 12/19/2024 |
| 7.0.5 | 212 | 6/3/2024 |
| 7.0.4 | 214 | 11/12/2023 |
| 6.0.15 | 2,902 | 10/27/2025 |
| 6.0.14 | 198 | 12/17/2024 |
| 6.0.13 | 275 | 4/4/2024 |
| 6.0.12 | 34,745 | 11/10/2023 |
Loading failed