source: FarmatikoData/FarmatikoDataContext.cs@ e0cdea2

Last change on this file since e0cdea2 was e0cdea2, checked in by Dimitar Slezenkovski <dslezenkovski@…>, 3 years ago

Fix all bugs

  • Property mode set to 100644
File size: 2.8 KB
RevLine 
[30a465f]1using FarmatikoData.Models;
2using Microsoft.EntityFrameworkCore;
3
4namespace FarmatikoData
5{
6 public class FarmatikoDataContext : DbContext
7 {
8 public FarmatikoDataContext(DbContextOptions options) : base(options) { }
[8e74e2f]9
[30a465f]10
[db484c9]11 public DbSet<HealthFacility> HealthFacilities { get; set; }
12 public DbSet<HealthcareWorker> HealthcareWorkers { get; set; }
13 public DbSet<Pharmacy> Pharmacies { get; set; }
14 public DbSet<PharmacyHead> PharmacyHeads { get; set; }
15 public DbSet<Pandemic> Pandemics { get; set; }
16 public DbSet<Medicine> Medicines { get; set; }
17 public DbSet<RequestPharmacyHead> PHRequests { get; set; }
18 public DbSet<User> Users { get; set; }
19 public DbSet<PharmacyHeadMedicine> PharmacyHeadMedicines { get; set; }
[8e74e2f]20
[1db5673]21 protected override void OnModelCreating(ModelBuilder modelBuilder)
22 {
[8e74e2f]23 modelBuilder.UseSerialColumns();
24
[1db5673]25 modelBuilder.Entity<PharmacyHead>()
26 .ToTable("PharmacyHeads");
27
28 modelBuilder.Entity<Medicine>()
29 .ToTable("Medicines");
30
[68454c6]31 modelBuilder.Entity<Pharmacy>()
32 .ToTable("Pharmacies");
33
[db484c9]34 modelBuilder.Entity<PharmacyHeadMedicine>()
35 .ToTable("PharmacyHeadMedicines");
36
37 modelBuilder.Entity<RequestPharmacyHead>()
38 .ToTable("PHRequests");
39
[0a694bb]40 modelBuilder.Entity<PharmacyHead>()
41 .Property(p => p.Id)
42 .ValueGeneratedOnAdd();
43
[e0cdea2]44 modelBuilder.Entity<PharmacyHeadMedicine>()
45 .Property(p => p.Id)
46 .ValueGeneratedOnAdd();
47
48 modelBuilder.Entity<Medicine>()
49 .Property(p => p.Id)
50 .ValueGeneratedOnAdd();
[8e74e2f]51
52 modelBuilder.Entity<Pharmacy>()
[e0cdea2]53 .Property(p => p.Id)
54 .ValueGeneratedOnAdd();
[8e74e2f]55
56 modelBuilder.Entity<PharmacyHead>()
[e0cdea2]57 .HasMany<Pharmacy>(p => p.Pharmacies)
58 .WithOne(p => p.PharmacyHead);
[8e74e2f]59
[e0cdea2]60 modelBuilder.Entity<Pharmacy>()
61 .HasOne<PharmacyHead>(p => p.PharmacyHead)
62 .WithMany(p => p.Pharmacies)
63 .HasForeignKey(x => x.PheadId);
[8e74e2f]64
[e0cdea2]65 modelBuilder.Entity<PharmacyHeadMedicine>()
66 .HasKey(bc => new { bc.PheadId, bc.MedicineId});
[8e74e2f]67
[1db5673]68 modelBuilder.Entity<PharmacyHeadMedicine>()
[e0cdea2]69 .HasOne(bc => bc.Head)
70 .WithMany(b => b.Medicines)
71 .HasForeignKey(bc => bc.PheadId);
[1db5673]72
[e0cdea2]73 modelBuilder.Entity<PharmacyHeadMedicine>()
74 .HasOne(bc => bc.Medicine)
75 .WithMany(c => c.Medicines)
76 .HasForeignKey(bc => bc.MedicineId);
[68454c6]77
[0a694bb]78
[1db5673]79 base.OnModelCreating(modelBuilder);
80 }
[30a465f]81 }
82}
Note: See TracBrowser for help on using the repository browser.