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.IgnoreRelationshipAdded = true;
AuditManager.DefaultConfiguration.IgnoreRelationshipDeleted = true;
using (var context = new EntityContext())
context.Invoices.RemoveRange(context.Invoices.Include(x => x.InvoiceItems).ToList());
context.Invoices.Add(new Invoice() { Description = "Invoice_C", InvoiceItems = new List<InvoiceItem>() { new InvoiceItem() { Description = "Invoice_B_InvoiceItem_A" } }});
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()
List<Invoice> list = new List<Invoice>() {
new Invoice() { Description = "Invoice_A", InvoiceItems = new List<InvoiceItem>() { new InvoiceItem() { Description = "Invoice_A_InvoiceItem_A" }}}} ;
using (var context = new EntityContext())
context.Invoices.AddRange(list);
public class EntityContext : DbContext
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
optionsBuilder.UseSqlServer(new SqlConnection(FiddleHelper.GetConnectionStringSqlServer()));
base.OnConfiguring(optionsBuilder);
public DbSet<Invoice> Invoices { get; set; }
public DbSet<InvoiceItem> InvoiceItems { get; set; }
public int InvoiceID { get; set; }
public string Description { get; set; }
public List<InvoiceItem> InvoiceItems { get; set; }
public int InvoiceItemID { get; set; }
public string Description { get; set; }