namespace SimpleLIS; using Microsoft.EntityFrameworkCore; using SimpleLIS.Models; public class HL7DbContext : DbContext { #pragma warning disable CS8618 public DbSet Messages { get; set; } #pragma warning restore CS8618 #pragma warning disable CS8618 public DbSet Patients { get; set; } #pragma warning restore CS8618 #pragma warning disable CS8618 public DbSet Observations { get; set; } #pragma warning restore CS8618 protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { optionsBuilder.UseSqlite("Data Source=hl7.db"); } protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity() .HasKey(m => m.MessageId); modelBuilder.Entity() .HasKey(p => p.PatientId); modelBuilder.Entity() .HasKey(o => o.ObservationId); modelBuilder.Entity() .HasMany(m => m.Observations) .WithOne(o => o.Message) .HasForeignKey(o => o.MessageId); modelBuilder.Entity() .HasOne(m => m.Patient) .WithMany(p => p.Messages) .HasForeignKey(m => m.PatientId) .OnDelete(DeleteBehavior.Cascade); modelBuilder.Entity() .HasOne(o => o.Message) .WithMany(m => m.Observations) .HasForeignKey(o => o.MessageId) .OnDelete(DeleteBehavior.Cascade); } }