using FarmatikoData.Models; using Microsoft.EntityFrameworkCore; namespace FarmatikoData { public class FarmatikoDataContext : DbContext { public FarmatikoDataContext(DbContextOptions options) : base(options) { } public DbSet HealthFacilities { get; set; } public DbSet HealthcareWorkers { get; set; } public DbSet Pharmacies { get; set; } public DbSet PharmacyHeads { get; set; } public DbSet Pandemics { get; set; } public DbSet Medicines { get; set; } public DbSet PHRequests { get; set; } public DbSet Users { get; set; } public DbSet PharmacyHeadMedicines { get; set; } protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.UseSerialColumns(); modelBuilder.Entity() .ToTable("PharmacyHeads"); modelBuilder.Entity() .ToTable("Medicines"); modelBuilder.Entity() .ToTable("Pharmacies"); modelBuilder.Entity() .ToTable("PharmacyHeadMedicines"); modelBuilder.Entity() .ToTable("PHRequests"); modelBuilder.Entity() .Property(p => p.Id) .ValueGeneratedOnAdd(); modelBuilder.Entity() .Property(p => p.Id) .ValueGeneratedOnAdd(); modelBuilder.Entity() .Property(p => p.Id) .ValueGeneratedOnAdd(); modelBuilder.Entity() .Property(p => p.Id) .ValueGeneratedOnAdd(); modelBuilder.Entity() .HasMany(p => p.Pharmacies) .WithOne(p => p.PharmacyHead); modelBuilder.Entity() .HasOne(p => p.PharmacyHead) .WithMany(p => p.Pharmacies) .HasForeignKey(x => x.PheadId); modelBuilder.Entity() .HasKey(bc => new { bc.PheadId, bc.MedicineId}); modelBuilder.Entity() .HasOne(bc => bc.Head) .WithMany(b => b.Medicines) .HasForeignKey(bc => bc.PheadId); modelBuilder.Entity() .HasOne(bc => bc.Medicine) .WithMany(c => c.Medicines) .HasForeignKey(bc => bc.MedicineId); base.OnModelCreating(modelBuilder); } } }