Xtensive.Orm.Tracking
7.1.3
There is a newer version of this package available.
See the version list below for details.
See the version list below for details.
The owner has unlisted this package.
This could mean that the package is deprecated, has security vulnerabilities or shouldn't be used anymore.
dotnet add package Xtensive.Orm.Tracking --version 7.1.3
NuGet\Install-Package Xtensive.Orm.Tracking -Version 7.1.3
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.3" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Xtensive.Orm.Tracking --version 7.1.3
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Xtensive.Orm.Tracking, 7.1.3"
#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.
// Install Xtensive.Orm.Tracking as a Cake Addin #addin nuget:?package=Xtensive.Orm.Tracking&version=7.1.3 // Install Xtensive.Orm.Tracking as a Cake Tool #tool nuget:?package=Xtensive.Orm.Tracking&version=7.1.3
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. |
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.3)
-
net6.0
- System.Configuration.ConfigurationManager (>= 6.0.1)
- Xtensive.Orm (>= 7.1.3)
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-1 | 125 | 12/28/2023 |
7.1.4 | 30 | 1/27/2025 |
7.1.2 | 235 | 10/18/2024 |
7.1.1 | 446 | 11/14/2023 |
7.1.0 | 301 | 4/12/2023 |
7.1.0-RC | 189 | 3/9/2023 |
7.1.0-Beta-2 | 229 | 12/19/2022 |
7.1.0-Beta-1 | 150 | 7/4/2022 |
7.0.6 | 83 | 12/19/2024 |
7.0.5 | 113 | 6/3/2024 |
7.0.4 | 132 | 11/12/2023 |
7.0.3 | 527 | 3/21/2022 |
7.0.2 | 564 | 2/8/2022 |
7.0.1 | 406 | 10/29/2021 |
7.0.0 | 416 | 6/2/2021 |
6.0.14 | 90 | 12/17/2024 |
6.0.13 | 156 | 4/4/2024 |
6.0.12 | 17,194 | 11/10/2023 |
6.0.11 | 756 | 1/12/2023 |
6.0.10 | 509 | 4/29/2022 |
6.0.9 | 492 | 2/2/2022 |
6.0.8 | 465 | 10/28/2021 |
6.0.7 | 51,512 | 8/27/2021 |
6.0.6 | 490 | 5/24/2021 |
6.0.5 | 479 | 3/9/2021 |
6.0.4 | 12,348 | 12/22/2020 |
6.0.3 | 564 | 9/29/2020 |
6.0.0 | 1,194 | 1/28/2020 |
5.1.0-Beta-1 | 1,196 | 1/30/2015 |
5.0.24 | 528 | 4/27/2021 |
5.0.23 | 473 | 2/4/2021 |
5.0.22 | 612 | 11/18/2020 |
5.0.21 | 537 | 11/6/2020 |
5.0.20 | 663 | 12/25/2019 |
5.0.19 | 18,135 | 5/30/2019 |
5.0.19-Beta-2 | 771 | 4/16/2019 |
5.0.19-Beta-1 | 580 | 12/29/2018 |
5.0.18 | 3,807 | 9/28/2018 |
5.0.18-Beta-3 | 746 | 7/2/2018 |
5.0.18-Beta-2 | 828 | 6/6/2018 |
5.0.18-Beta-1 | 766 | 4/24/2018 |
5.0.17 | 1,440 | 2/27/2018 |
5.0.17-Beta-3 | 829 | 2/12/2018 |
5.0.17-Beta-2 | 868 | 1/12/2018 |
5.0.17-Beta-1 | 850 | 12/28/2017 |
5.0.16 | 1,108 | 12/1/2017 |
5.0.16-Beta-1 | 799 | 9/27/2017 |
5.0.15 | 1,197 | 8/1/2017 |
5.0.14 | 1,144 | 6/19/2017 |
5.0.13 | 1,199 | 3/22/2017 |
5.0.12 | 1,116 | 2/14/2017 |
5.0.11 | 1,078 | 1/25/2017 |
5.0.11-RC2 | 798 | 12/16/2016 |
5.0.11-RC | 1,140 | 9/20/2016 |
5.0.10 | 1,101 | 8/5/2016 |
5.0.10-RC | 872 | 6/30/2016 |
5.0.9 | 1,433 | 3/3/2016 |
5.0.8 | 1,126 | 2/15/2016 |
5.0.7 | 1,113 | 1/27/2016 |
5.0.7-RC2 | 923 | 12/8/2015 |
5.0.7-RC | 880 | 9/10/2015 |
5.0.6 | 1,193 | 7/3/2015 |
5.0.5 | 1,421 | 4/23/2015 |
5.0.4 | 1,136 | 3/19/2015 |
5.0.4-RC | 1,299 | 2/25/2015 |
5.0.3 | 1,552 | 10/31/2014 |
5.0.2 | 1,339 | 9/11/2014 |
5.0.0 | 1,211 | 8/15/2014 |
5.0.0-RC2 | 971 | 8/1/2014 |
5.0.0-RC | 866 | 7/21/2014 |
5.0.0-Beta-3 | 926 | 5/28/2014 |
5.0.0-Beta-2 | 964 | 2/28/2014 |
5.0.0-Beta-1 | 981 | 11/14/2013 |
4.6.9 | 1,102 | 7/3/2015 |
4.6.8 | 1,190 | 8/1/2014 |
4.6.7 | 1,227 | 6/23/2014 |
4.6.6 | 1,339 | 4/9/2014 |
4.6.5 | 1,231 | 1/7/2014 |
4.6.4 | 3,246 | 9/30/2013 |
4.6.3 | 1,919 | 2/4/2013 |
4.6.2 | 1,695 | 11/28/2012 |
4.6.0 | 1,470 | 10/11/2012 |
4.6.0-RC | 1,136 | 10/4/2012 |