using System.Collections.Generic;
using System.Data.Entity;
using Z.EntityFramework.Classic;
public class EntityContext : DbContext
public EntityContext() : base(FiddleHelper.GetConnectionStringSqlServer())
this.Configuration.Audit.AutoSaveAction = (context, auditing) => {
var auditContext = new AuditContext();
auditContext.XmlAuditEntries.AddRange(auditing.EntriesXml);
auditContext.SaveChanges();
this.Configuration.Audit.IsEnabled = true;
public DbSet<Customer> Customers { get; set; }
public class AuditContext : DbContext
public AuditContext() : base(FiddleHelper.GetConnectionStringSqlServer())
public DbSet<XmlAuditEntry> XmlAuditEntries { get; set; }
public static void Main()
using (var context = new EntityContext())
context.Customers.Add(new Customer() { Name = "Customer_A", Description = "Description" });
using(var auditContext = new AuditContext())
var auditEntries = auditContext.XmlAuditEntries.ToAuditEntries();
FiddleHelper.WriteTable("1 - Audit Entries", auditEntries);
FiddleHelper.WriteTable("2 - Audit Properties", auditEntries.SelectMany(x => x.Properties));
public int CustomerID { get; set; }
public string Name { get; set; }
public string Description { get; set; }