Xtensive.Orm.Tracking
7.1.5
There is a newer prerelease version of this package available.
See the version list below for details.
See the version list below for details.
dotnet add package Xtensive.Orm.Tracking --version 7.1.5
NuGet\Install-Package Xtensive.Orm.Tracking -Version 7.1.5
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.1.5" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Xtensive.Orm.Tracking" Version="7.1.5" />
<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.1.5
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Xtensive.Orm.Tracking, 7.1.5"
#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.1.5
#: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.1.5
#tool nuget:?package=Xtensive.Orm.Tracking&version=7.1.5
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
Session
level obtain an instance ofISessionTrackingMonitor
throughSession.Services.Get<ISessionTrackingMonitor>()
method; to track changes onDomain
level (from all sessions) obtain an instance ofIDomainTrackingMonitor
throughDomain.Services.Get<IDomainTrackingMonitor>()
method - Subscribe to
TrackingCompleted
event. After each tracked transaction is committed you receive theTrackingCompletedEventArgs
object. TrackingCompletedEventArgs.Changes
contains a collection ofITrackingItem
objects, each of them represents a set of changes that occured to anEntity
within 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 | net5.0 is compatible. net5.0-windows was computed. 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 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. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net5.0
- System.Configuration.ConfigurationManager (>= 5.0.0)
- Xtensive.Orm (>= 7.1.5)
-
net6.0
- System.Configuration.ConfigurationManager (>= 6.0.1)
- Xtensive.Orm (>= 7.1.5)
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-Beta-2 | 142 | 4/27/2025 |
7.2.0-Beta-1 | 143 | 12/28/2023 |
7.1.5 | 466 | 4/10/2025 |
7.1.4 | 328 | 1/27/2025 |
7.1.2 | 274 | 10/18/2024 |
7.1.1 | 690 | 11/14/2023 |
7.1.0 | 363 | 4/12/2023 |
7.1.0-RC | 243 | 3/9/2023 |
7.1.0-Beta-2 | 279 | 12/19/2022 |
7.1.0-Beta-1 | 206 | 7/4/2022 |
7.0.6 | 137 | 12/19/2024 |
7.0.5 | 152 | 6/3/2024 |
7.0.4 | 156 | 11/12/2023 |
7.0.3 | 600 | 3/21/2022 |
7.0.2 | 636 | 2/8/2022 |
7.0.1 | 488 | 10/29/2021 |
7.0.0 | 493 | 6/2/2021 |
6.0.14 | 132 | 12/17/2024 |
6.0.13 | 199 | 4/4/2024 |
6.0.12 | 28,505 | 11/10/2023 |
6.0.11 | 1,007 | 1/12/2023 |
6.0.10 | 584 | 4/29/2022 |
6.0.9 | 567 | 2/2/2022 |
6.0.8 | 541 | 10/28/2021 |
6.0.7 | 54,645 | 8/27/2021 |
6.0.6 | 568 | 5/24/2021 |
6.0.5 | 570 | 3/9/2021 |
6.0.4 | 12,508 | 12/22/2020 |
6.0.3 | 654 | 9/29/2020 |
6.0.0 | 1,295 | 1/28/2020 |
5.1.0-Beta-1 | 1,430 | 1/30/2015 |
5.0.24 | 611 | 4/27/2021 |
5.0.23 | 560 | 2/4/2021 |
5.0.22 | 708 | 11/18/2020 |
5.0.21 | 626 | 11/6/2020 |
5.0.20 | 759 | 12/25/2019 |
5.0.19 | 18,314 | 5/30/2019 |
5.0.19-Beta-2 | 878 | 4/16/2019 |
5.0.19-Beta-1 | 682 | 12/29/2018 |
5.0.18 | 3,935 | 9/28/2018 |
5.0.18-Beta-3 | 1,063 | 7/2/2018 |
5.0.18-Beta-2 | 1,136 | 6/6/2018 |
5.0.18-Beta-1 | 1,083 | 4/24/2018 |
5.0.17 | 1,660 | 2/27/2018 |
5.0.17-Beta-3 | 1,154 | 2/12/2018 |
5.0.17-Beta-2 | 1,203 | 1/12/2018 |
5.0.17-Beta-1 | 1,181 | 12/28/2017 |
5.0.16 | 1,333 | 12/1/2017 |
5.0.16-Beta-1 | 1,014 | 9/27/2017 |
5.0.15 | 1,428 | 8/1/2017 |
5.0.14 | 1,376 | 6/19/2017 |
5.0.13 | 1,431 | 3/22/2017 |
5.0.12 | 1,350 | 2/14/2017 |
5.0.11 | 1,322 | 1/25/2017 |
5.0.11-RC2 | 1,016 | 12/16/2016 |
5.0.11-RC | 1,358 | 9/20/2016 |
5.0.10 | 1,332 | 8/5/2016 |
5.0.10-RC | 1,098 | 6/30/2016 |
5.0.9 | 1,668 | 3/3/2016 |
5.0.8 | 1,358 | 2/15/2016 |
5.0.7 | 1,350 | 1/27/2016 |
5.0.7-RC2 | 1,154 | 12/8/2015 |
5.0.7-RC | 1,104 | 9/10/2015 |
5.0.6 | 1,439 | 7/3/2015 |
5.0.5 | 1,661 | 4/23/2015 |
5.0.4 | 1,381 | 3/19/2015 |
5.0.4-RC | 1,528 | 2/25/2015 |
5.0.3 | 1,798 | 10/31/2014 |
5.0.2 | 1,578 | 9/11/2014 |
5.0.0 | 1,457 | 8/15/2014 |
5.0.0-RC2 | 1,200 | 8/1/2014 |
5.0.0-RC | 1,104 | 7/21/2014 |
5.0.0-Beta-3 | 1,164 | 5/28/2014 |
5.0.0-Beta-2 | 1,216 | 2/28/2014 |
5.0.0-Beta-1 | 1,239 | 11/14/2013 |
4.6.9 | 1,342 | 7/3/2015 |
4.6.8 | 1,445 | 8/1/2014 |
4.6.7 | 1,475 | 6/23/2014 |
4.6.6 | 1,594 | 4/9/2014 |
4.6.5 | 1,498 | 1/7/2014 |
4.6.4 | 3,495 | 9/30/2013 |
4.6.3 | 2,185 | 2/4/2013 |
4.6.2 | 1,957 | 11/28/2012 |
4.6.0 | 1,733 | 10/11/2012 |
4.6.0-RC | 1,383 | 10/4/2012 |