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(); modelBuilder.Entity().HasMany(e => e.CategorieRune) .WithOne(e => e.Rune) .HasForeignKey(e => e.IdRune); // -------------------------------------------------------------------------------// //création de la table Skills modelBuilder.Entity().HasKey(c => c.Id); modelBuilder.Entity().Property(c => c.Id) .ValueGeneratedOnAdd(); // -------------------------------------------------------------------------------// //création de la table Page rune modelBuilder.Entity().HasKey(c => c.Id); modelBuilder.Entity().Property(c => c.Id) .ValueGeneratedOnAdd(); modelBuilder.Entity().HasMany(e => e.CategorieRune) .WithOne(e => e.PageRune) .HasForeignKey(e => e.IdPageRune); // -------------------------------------------------------------------------------// //création de la table Categorie_Rune modelBuilder.Entity().HasKey(c => c.Id); modelBuilder.Entity().Property(c => c.Id) .ValueGeneratedOnAdd(); // ---------------------------------- Stub --------------------------------------// // Ajout Image int nbImage = 29; List listImage = new List(); for( int i=1; i().HasData(listImage); // Ajout Champion } 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; } public DbSet PageRunes { get; set; } public DbSet CategorieRunes { get; set; } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { if (!optionsBuilder.IsConfigured) { optionsBuilder.UseSqlite($"Data Source=BDD-APILOL.db"); } } } }