using BlueWest.Data; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Configuration; namespace BlueWest.WebApi.MySQL; /// /// Table containing countries /// public class CountriesDbContext : DbContext { public DbSet Countries { get; set; } public DbSet Currencies { get; set; } public IConfiguration Configuration; /// /// Options to be injected in the app /// /// public CountriesDbContext(DbContextOptions options) : base(options) { Database.EnsureCreated(); } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { /*optionsBuilder.UseMySql( Configuration.GetConnectionString("LocalMySQL"), new MySqlServerVersion(new Version(8, 0, 11)) );*/ } /// /// The country number is the primary key /// The currency code is the primary key /// /// protected override void OnModelCreating(ModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); modelBuilder.Entity(builder => { builder.HasKey(x => x.Code); }); modelBuilder.Entity(builder => { builder.HasKey(x => x.Num); }); modelBuilder.Entity() .HasMany(ub => ub.Countries) .WithMany(au => au.Currencies); modelBuilder.Entity() .HasMany(ub => ub.Currencies) .WithMany(au => au.Countries); } }