using EntityFrameworkLOL.Entities; using Microsoft.EntityFrameworkCore; using Model; namespace EntityFrameworkLOL.DBContexts { public class SQLiteContext : DbContext { public DbSet Image { get; set; } public DbSet Skill { get; set; } public DbSet Skin { get; set; } public DbSet Rune { get; set; } public DbSet RunePage { get; set; } public DbSet Champion { get; set; } protected override void OnConfiguring(DbContextOptionsBuilder options) => options.UseSqlite($"Data Source=DBLOL.db"); protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity().Property(i => i.Base64).ValueGeneratedOnAdd(); modelBuilder.Entity().HasKey(c => new { c.Name, c.Champion }); modelBuilder.Entity().Property(rp => rp.Name).ValueGeneratedOnAdd(); modelBuilder.Entity() .HasMany(rp => rp.Runes) .WithMany(r => r.RunePages) .UsingEntity(); modelBuilder.Entity() .HasMany(c => c.RunePages) .WithMany(rp => rp.Champions); modelBuilder.Entity().HasData(new List() { new() { Base64 = "default" } }); modelBuilder.Entity().HasData(new List() { new() { Name = "WinKer", Bio = "Best front-end designer", Class = ChampionClass.Mage, }, new() { Name = "Jonquille", Bio = "Daffodil", Class = ChampionClass.Support, } }); modelBuilder.Entity().HasData(new List() { new() { Name = "Front-end", Value = 100, }, new() { Name = "Back-end", Value = 100, } }); modelBuilder.Entity().HasData(new List() { new SkinEntity { Name = "Darker WinKer", Description = "Be invisible in the darkness but never alone", Icon = "default", Price=9.99F }, new SkinEntity { Name = "Summer Daffodil", Description = "A jewel of Summer for all year long", Icon = "default", Price=9.99F }, }); modelBuilder.Entity().HasData(new List() { new() { Name = "Beautiful layout", Description = "Bowl'In", Type = SkillType.Ultimate }, new() { Name = "DB Support", Description = "DB", Type = SkillType.Basic } }); modelBuilder.Entity().HasData(new List() { new() { Name="FirstRunepage" } }); modelBuilder.Entity().HasData(new List() { new() { Name = "Mastering of Blue", Description = "Blue shades", Family = RuneFamily.Domination }, new() { Name = "Empty Shards", Description = "Remove runes", Family = RuneFamily.Precision } }); } } }