using Microsoft.EntityFrameworkCore; namespace LCU.API.Internal.LoanRateLib.Persistence; public class AppDbContext : DbContext { public DbSet Rates { get; set; } public DbSet RateEvaluations { get; set; } public DbSet RateUploadInfos { get; set; } public DbSet RateSheets { get; set; } public DbSet RateSheetCells { get; set; } public AppDbContext(DbContextOptions options) : base(options) { } protected override void OnModelCreating(ModelBuilder builder) { base.OnModelCreating(builder); builder.Entity().ToTable("Rate"); builder.Entity().ToTable("RateEvaluation"); builder.Entity().ToTable("RateUploadInfo") .HasMany(rateUploadInfo => rateUploadInfo.Rates) .WithOne() .HasForeignKey(rate => rate.RateUploadInfoId) .IsRequired(false) .OnDelete(DeleteBehavior.Cascade); builder.Entity().ToTable("RateUploadInfo") .HasMany(rateUploadInfo => rateUploadInfo.ClosedRates) .WithOne() .HasForeignKey(rate => rate.ClosingRateUploadInfoId) .IsRequired(false) .OnDelete(DeleteBehavior.SetNull); builder.Entity().ToTable("RateSheet") .HasMany(rateSheet => rateSheet.Rates) .WithOne() .HasForeignKey(rate => rate.RateSheetId) .IsRequired(false) .OnDelete(DeleteBehavior.Cascade); builder.Entity().ToTable("RateSheet") .HasMany(rateSheet => rateSheet.RateSheetCells) .WithOne() .HasForeignKey(rateSheetCell => rateSheetCell.RateSheetId) .IsRequired(false) .OnDelete(DeleteBehavior.Cascade); builder.Entity().ToTable("RateSheetCell"); } }