using System.Collections.Generic;
using System.Data.Entity;
using Z.EntityFramework.Classic;
public class EntityContext : DbContext
public EntityContext() : base(FiddleHelper.GetConnectionStringSqlServer())
this.Configuration.Audit.ExcludePropertyUnchanged<Customer>();
this.Configuration.Audit.AutoSaveSet = this.XmlAuditEntries;
this.Configuration.Audit.IsEnabled = true;
public DbSet<Customer> Customers { get; set; }
public DbSet<XmlAuditEntry> XmlAuditEntries { get; set; }
public static void Main()
using (var context = new EntityContext())
context.Configuration.Audit.IsEnabled = false;
context.Customers.Add(new Customer() { Name = "Customer_A", Description = "Description" });
using (var context = new EntityContext())
context.Customers.ToList().ForEach(x => x.Description = "Update_1");
var auditEntries = context.XmlAuditEntries.ToAuditEntries();
FiddleHelper.WriteTable("1 - Entity Framework - All Unchanged Property Exclude (Key properties are never excluded);", auditEntries.SelectMany(x => x.Properties));
using (var context = new EntityContext())
context.Customers.ToList().ForEach(x => x.Description = "Update_2");
context.Configuration.Audit.IncludePropertyUnchanged<Customer>();
var auditEntries = context.XmlAuditEntries.ToAuditEntries();
FiddleHelper.WriteTable("2 - Entity Framework - context.Configuration.Audit.IncludePropertyUnchanged<Customer>();", auditEntries.SelectMany(x => x.Properties));
public int CustomerID { get; set; }
public string Name { get; set; }
public string Description { get; set; }