using Microsoft.EntityFrameworkCore;
using System.Collections.Generic;
using Microsoft.Data.SqlClient;
using Z.EntityFramework.Plus;
public static void Main()
using (var context = new EntityContext())
context.Database.EnsureCreated();
AuditManager.DefaultConfiguration.ExcludeProperty();
AuditManager.DefaultConfiguration.IncludeProperty<CustomerInclude>();
AuditManager.DefaultConfiguration.ExcludeProperty<CustomerInclude>(x => new { x.IsActive, x.Description });
using (var context = new EntityContext())
var listToRemove = context.CustomerExcludes.Where(x => x.IsActive == false ).ToList();
var listToModify = context.CustomerIncludes.Where(x => x.IsActive == true ).ToList();
var listToAdd = new List<CustomerExclude>() { new CustomerExclude() { Name = "Customer_C", Description = "Description", IsActive = false}};
listToModify.First().Description = "Updated_A_Description";
listToModify.First().Name = "Updated_A_Name";
listToModify.First().IsActive = false;
context.CustomerExcludes.AddRange(listToAdd);
context.CustomerExcludes.RemoveRange(listToRemove);
audit.CreatedBy = "ZZZ Projects";
context.SaveChanges(audit);
var entries = audit.Entries;
FiddleHelper.WriteTable("All Entry",entries);
foreach(var entry in entries)
FiddleHelper.WriteTable("Properties for One Entry",entry.Properties);
public static void GenerateData()
using (var context = new EntityContext())
context.CustomerIncludes.Add(new CustomerInclude() { Name ="Customer_A", Description = "Description", IsActive = true });
context.CustomerExcludes.Add(new CustomerExclude() { Name ="Customer_B", Description = "Description", IsActive = false });
public class EntityContext : DbContext
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
optionsBuilder.UseSqlServer(new SqlConnection(FiddleHelper.GetConnectionStringSqlServer()));
base.OnConfiguring(optionsBuilder);
public DbSet<CustomerInclude> CustomerIncludes { get; set; }
public DbSet<CustomerExclude> CustomerExcludes { get; set; }
public class CustomerInclude
public int CustomerIncludeID { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public Boolean IsActive { get; set; }
public class CustomerExclude
public int CustomerExcludeID { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public Boolean IsActive { get; set; }