using EnvelopeGenerator.Domain.Entities; using Microsoft.EntityFrameworkCore; namespace DigitalData.UserManager.Infrastructure.Repositories { public class EGDbContext : DbContext { public EGDbContext(DbContextOptions options) : base(options) { } protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity().HasNoKey(); modelBuilder.Entity() .HasKey(er => new { er.EnvelopeId, er.ReceiverId }); modelBuilder.Entity(); modelBuilder.Entity(); modelBuilder.Entity(); modelBuilder.Entity(); modelBuilder.Entity(); modelBuilder.Entity(); modelBuilder.Entity(); modelBuilder.Entity(); modelBuilder.Entity(); modelBuilder.Entity(); // Configure the one-to-many relationship of Envelope modelBuilder.Entity() .HasMany(e => e.Documents) .WithOne() .HasForeignKey(ed => ed.EnvelopeId); modelBuilder.Entity() .HasMany(e => e.History) .WithOne() .HasForeignKey(eh => eh.EnvelopeId); modelBuilder.Entity() .HasMany(ed => ed.Elements) .WithOne(e => e.Document) .HasForeignKey(e => e.DocumentId); modelBuilder.Entity() .HasOne(dre => dre.Document) .WithMany(ed => ed.Elements) .HasForeignKey(dre => dre.DocumentId); // Configure entities to handle database triggers modelBuilder.Entity().ToTable(tb => tb.HasTrigger("TBSIG_ENVELOPE_HISTORY_AFT_INS")); modelBuilder.Entity().ToTable(tb => tb.HasTrigger("TBSIG_ENVELOPE_HISTORY_AFT_INS")); base.OnModelCreating(modelBuilder); } } }