using DTO; using Microsoft.EntityFrameworkCore; namespace EntityFramwork { public class BDDContext : DbContext { public BDDContext() { } public BDDContext(DbContextOptions option) : base(option) { } protected override void OnModelCreating(ModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); //création de la table Champion modelBuilder.Entity().HasKey(a => a.Id); modelBuilder.Entity().Property(a => a.Id) .ValueGeneratedOnAdd(); modelBuilder.Entity().HasIndex(a => a.Name) .IsUnique(true); //Clé avec skins modelBuilder.Entity() .HasMany(e => e.Skins) .WithOne(e => e.Champion) .HasForeignKey(x => x.ChampionId); //Clé avec skill modelBuilder.Entity() .HasMany(e => e.Skills) .WithOne(e => e.Champions) .HasForeignKey(x => x.ChampionId); // -------------------------------------------------------------------------------// //création de la table Skins modelBuilder.Entity().HasKey(m => m.Id); modelBuilder.Entity().Property(m => m.Id) .ValueGeneratedOnAdd(); // -------------------------------------------------------------------------------// //création de la table Images modelBuilder.Entity().HasKey(c => c.Id); modelBuilder.Entity().Property(c => c.Id) .ValueGeneratedOnAdd(); //Relation Images et Champion modelBuilder.Entity() .HasOne(e => e.Champion) .WithOne(z => z.Image) .HasForeignKey(x => x.ImageId); //Relation Images et Skins modelBuilder.Entity() .HasOne(e => e.Skin) .WithOne(z => z.Image) .HasForeignKey(x => x.ImageId); //Relation Images et Rune modelBuilder.Entity() .HasOne(e => e.Rune) .WithOne(z => z.Image) .HasForeignKey(x => x.ImageId); // -------------------------------------------------------------------------------// //création de la table Runes modelBuilder.Entity().HasKey(c => c.Id); modelBuilder.Entity().Property(c => c.Id) .ValueGeneratedOnAdd(); // -------------------------------------------------------------------------------// //création de la table Skills modelBuilder.Entity().HasKey(c => c.Id); modelBuilder.Entity().Property(c => c.Id) .ValueGeneratedOnAdd(); } public DbSet Champions { get; set; } public DbSet Skins { get; set; } public DbSet Images { get; set; } public DbSet Runes { get; set; } public DbSet Skills { get; set; } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { if (!optionsBuilder.IsConfigured) { optionsBuilder.UseSqlite($"Data Source=C:\\Users\\Jolys Enzo\\home\\BUT\\Projet\\LOL-API\\Sources\\EntityFramwork\\BDD-APILOL.db"); } } } }