EntityChange 5.0.18
See the version list below for details.
dotnet add package EntityChange --version 5.0.18
NuGet\Install-Package EntityChange -Version 5.0.18
<PackageReference Include="EntityChange" Version="5.0.18" />
paket add EntityChange --version 5.0.18
#r "nuget: EntityChange, 5.0.18"
// Install EntityChange as a Cake Addin
#addin nuget:?package=EntityChange&version=5.0.18
// Install EntityChange as a Cake Tool
#tool nuget:?package=EntityChange&version=5.0.18
EntityChange
Library to compare two entity object graphs detecting changes
Download
The EntityChange library is available on nuget.org via package name EntityChange
.
To install EntityChange, run the following command in the Package Manager Console
PM> Install-Package EntityChange
More information about NuGet package available at https://nuget.org/packages/EntityChange
Features
- Compare complete entity graph including child entities, collections and dictionaries
- Collection compare by index or element equality
- Dictionary compare by key
- Custom value string formatter
- Custom entity equality compare
- Markdown or Html change report formatter
Configuration
Configure the Contact properties and collections.
EntityChange.Configuration.Default.Configure(config => config
.Entity<Contact>(e =>
{
// set the FirstName display name
e.Property(p => p.FirstName).Display("First Name");
// compare the Roles collection by string equality
e.Collection(p => p.Roles)
.CollectionComparison(CollectionComparison.ObjectEquality)
.ElementEquality(StringEquality.OrdinalIgnoreCase);
// set how to format the EmailAddress entity as a string
e.Collection(p => p.EmailAddresses).ElementFormatter(v =>
{
var address = v as EmailAddress;
return address?.Address;
});
})
.Entity<EmailAddress>(e =>
{
e.Property(p => p.Address).Display("Email Address");
})
);
Comparison
Compare to Contact entities
// create comparer using default configuration
var comparer = new EntityComparer();
// compare original and current instances generating change list
var changes = comparer.Compare(original, current).ToList();
Change Report
Sample output from the MarkdownFormatter
OUTPUT
- Removed
Administrator
fromRoles
- Changed
Email Address
fromuser@Personal.com
touser@gmail.com
- Added
user@home.com
toEmail Addresses
- Changed
Status
fromNew
toVerified
- Changed
Updated
from5/17/2016 8:51:59 PM
to5/17/2016 8:52:00 PM
- Changed
Zip
from10026
to10027
- Changed
Number
from888-555-1212
to800-555-1212
- Added
Blah
toCategories
- Changed
Data
from1
to2
- Changed
Data
from./home
to./path
Product | Versions |
---|---|
.NET | net5.0 net5.0-windows net6.0 net6.0-android net6.0-ios net6.0-maccatalyst net6.0-macos net6.0-tvos net6.0-windows net7.0 net7.0-android net7.0-ios net7.0-maccatalyst net7.0-macos net7.0-tvos net7.0-windows |
.NET Core | netcoreapp2.0 netcoreapp2.1 netcoreapp2.2 netcoreapp3.0 netcoreapp3.1 |
.NET Standard | netstandard2.0 netstandard2.1 |
.NET Framework | net461 net462 net463 net47 net471 net472 net48 net481 |
MonoAndroid | monoandroid |
MonoMac | monomac |
MonoTouch | monotouch |
Tizen | tizen40 tizen60 |
Xamarin.iOS | xamarinios |
Xamarin.Mac | xamarinmac |
Xamarin.TVOS | xamarintvos |
Xamarin.WatchOS | xamarinwatchos |
-
.NETStandard 2.0
- System.ComponentModel.Annotations (>= 5.0.0)
- System.ComponentModel.TypeConverter (>= 4.3.0)
-
net6.0
- System.ComponentModel.Annotations (>= 5.0.0)
- System.ComponentModel.TypeConverter (>= 4.3.0)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on EntityChange:
Package | Downloads |
---|---|
KickStart.EntityChange
KickStart Extension for EntityChange library |
|
MediatR.CommandQuery.Audit
CQRS framework based on MediatR |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
5.0.21 | 1,044 | 12/28/2022 |
5.0.18 | 3,454 | 11/9/2022 |
5.0.14 | 241 | 11/7/2022 |
5.0.12 | 203 | 11/5/2022 |
4.1.0.104 | 6,757 | 3/31/2021 |
4.1.0.98 | 345 | 2/15/2021 |
4.1.0.97 | 294 | 2/15/2021 |
4.1.0.71 | 15,356 | 4/26/2020 |
4.0.0.66 | 1,440 | 4/11/2020 |
3.0.0.30 | 21,504 | 6/6/2019 |
3.0.0.29 | 3,212 | 11/5/2018 |
3.0.0.19 | 6,030 | 8/22/2017 |
2.1.0.16 | 12,484 | 3/6/2017 |
2.1.0.15 | 932 | 3/4/2017 |
2.0.0.11 | 1,862 | 7/14/2016 |
1.0.0.8 | 1,478 | 5/18/2016 |
1.0.0.7 | 964 | 5/18/2016 |
1.0.0.6 | 972 | 5/18/2016 |
1.0.0.5 | 955 | 5/16/2016 |
1.0.0.3 | 962 | 5/16/2016 |