From 4ccbd68454c2d01b100a4c450564ee3b43a90d64 Mon Sep 17 00:00:00 2001 From: "emre.kartal" Date: Wed, 1 Mar 2023 18:24:58 +0100 Subject: [PATCH] Back Up --- .../Sources/MyFlib/DataBase.db | Bin 57344 -> 61440 bytes .../Sources/MyFlib/Entities/ChampionEntity.cs | 2 + .../Entities/{Rune.cs => RuneEntity.cs} | 2 +- .../Sources/MyFlib/Entities/SkinEntity.cs | 4 +- .../Sources/MyFlib/LolDbContext.cs | 36 ++- ...230301171929_monNomDeMigration.Designer.cs | 276 ++++++++++++++++++ .../20230301171929_monNomDeMigration.cs | 175 +++++++++++ .../Migrations/LolDbContextModelSnapshot.cs | 273 +++++++++++++++++ 8 files changed, 754 insertions(+), 14 deletions(-) rename src/EntityFramework_LoL/Sources/MyFlib/Entities/{Rune.cs => RuneEntity.cs} (91%) create mode 100644 src/EntityFramework_LoL/Sources/MyFlib/Migrations/20230301171929_monNomDeMigration.Designer.cs create mode 100644 src/EntityFramework_LoL/Sources/MyFlib/Migrations/20230301171929_monNomDeMigration.cs create mode 100644 src/EntityFramework_LoL/Sources/MyFlib/Migrations/LolDbContextModelSnapshot.cs diff --git a/src/EntityFramework_LoL/Sources/MyFlib/DataBase.db b/src/EntityFramework_LoL/Sources/MyFlib/DataBase.db index 9ff30fad1af2ff6c5cb16e904d7019574d8ff427..ec7c5b480b2fdd9a944c2c18bd76fe22b7412ccf 100644 GIT binary patch delta 1339 zcmah{OKclO7~b{TUcc6pgrcQICBLjh&YL_0RfANB9H&Z45|pMQ?Zu4kaXiWHjJuBz zpPYsqazSd?N*uTpTBw3lBD9zGfK9#s#ZNm8Sd3P&{UmXwYzNZL~RF1nFUChux@5{t>t zW68vz`l;Fzy%Ambdi&c*_}%uX?ro{B$jG~{zTT*}sd`SAFLqN_CTr7+g)=LZ*@avc zn>EVW6t@UnVy8*H71wg}`H6)*OwUf{7a{W>?JIS7-$&FJ9RX==K-sA^d48s;=#2)kS z$3|s2>7hhlB>q81O!a?EK9Iv{MbiCmw3DG!7%fZaKDvo6qh-In?L6x12`e-D=*qsI#-XS3X#Br|l$!j5qM*wFCMsCT)uCIA`|+Cxor4K)M+N8Me@jQoH7 zVgK5z@3kp1dg!ZfJwV|@vNGuZG4~Sq(Mx}IrZh1^A?>P!BHC2}`mxs7D1>7Dn|VES zR-Ra~tC&HqUL;nH*WM;J6tO*6;jC;!IXmH&DTf?&>cE);E(6BhRf1ipHg_y;!#EfO z=1Gwl;;a}hAA%fl90E0N(?Hw+>_1^(D0AvS^GXA3&Y;9y3onrYu(9};h;0)fPH-#X z8ZJ?%xg%=9&QeyPhGP*6%9sgK0mbHL4mAmL0*<&+!PFAbDs~+bM8R(Elw6C7!yX7g zORZ-_bMs39^d?xOCg?YJhTu%Vq>3$*fQ45D4c7uAivhc~O`#~13Z6BcYhM#0oYjOtT8H7&ge{GGz=dxLJWs*($%_3S}%HZgW>Kc0r6l zSx_>v|Mmzw7!!4^3SlMVW?+8{SP(6{)WQKsiLi2@^_(F#!Wc1WU`fkS6F0vS^7huh z027O_fT>w@?I3LvYn7G+725%ayUW6V0kOudB6Toxo~R4OJXYvRC4!kj_ayW?y63kK ze}~?9LFs>bSVA32|I^xo#wgm8(BJ4W`ct(3hV}%&_sHA(p)0*Bp`XyMC`kp&KXm&O zq-2$|o>}Pjc6smqvyWTde*2wY(e^vh7sHAqhZIGMKOyxf$UfT7MiLQ4mO~;PkN*P* C>91%2 delta 622 zcma)3O=uHA6rR8CWOuW938-tV=n9qAP)uV$$VEgDp;Qz+Xm3WkhS+U3bQ8o|DAj`} z!=zrkSc&xHX)fj<7IT(J5lAEg`SllPpVqPsusM86p`pLYSF%9+345+R0*3_8k^yr%YWDlu;pERrAI9Hg(p+n#^ zyoQd>%sc|sIa$YAm%ujkp^LSrpu73oX-?8a%Zo!0*n%Va$F-xLu}gdY6JQiozv-sor?N2RUjKPPvTEm!oFr%{B4i zg6~D;S_OIGf_F7Utr3;Qjb|_*@Erzd*oVR~UZVdtV~2UcJSh62?oEwkb_x83T~v%m zx<6JE^8`X71X^ss<^Q!1oKVI&i6!C{pRtUA5c<&OGiX0As_nNE#twmBu%j~{zCruC Mumq;M1& diff --git a/src/EntityFramework_LoL/Sources/MyFlib/Entities/ChampionEntity.cs b/src/EntityFramework_LoL/Sources/MyFlib/Entities/ChampionEntity.cs index 19c0183..35a11ee 100644 --- a/src/EntityFramework_LoL/Sources/MyFlib/Entities/ChampionEntity.cs +++ b/src/EntityFramework_LoL/Sources/MyFlib/Entities/ChampionEntity.cs @@ -23,6 +23,8 @@ namespace MyFlib [Required] public ChampionClassEntity Class { get; set; } public ICollection Skills { get; set; } + public ICollection Skins { get; set; } + public LargeImageEntity Image { get; set; } [ForeignKey("Image")] diff --git a/src/EntityFramework_LoL/Sources/MyFlib/Entities/Rune.cs b/src/EntityFramework_LoL/Sources/MyFlib/Entities/RuneEntity.cs similarity index 91% rename from src/EntityFramework_LoL/Sources/MyFlib/Entities/Rune.cs rename to src/EntityFramework_LoL/Sources/MyFlib/Entities/RuneEntity.cs index 5690737..1858a30 100644 --- a/src/EntityFramework_LoL/Sources/MyFlib/Entities/Rune.cs +++ b/src/EntityFramework_LoL/Sources/MyFlib/Entities/RuneEntity.cs @@ -8,7 +8,7 @@ using System.Threading.Tasks; namespace MyFlib { - public class Rune + public class RuneEntity { [Key] [MaxLength(256)] diff --git a/src/EntityFramework_LoL/Sources/MyFlib/Entities/SkinEntity.cs b/src/EntityFramework_LoL/Sources/MyFlib/Entities/SkinEntity.cs index c16b4c8..7524011 100644 --- a/src/EntityFramework_LoL/Sources/MyFlib/Entities/SkinEntity.cs +++ b/src/EntityFramework_LoL/Sources/MyFlib/Entities/SkinEntity.cs @@ -20,8 +20,10 @@ namespace MyFlib public string Icon { get; set; } [Required] public float Price { get; set; } + [ForeignKey("ChampionForeignKey")] + public ChampionEntity Champion { get; set; } + public Guid ChampionForeignKey { get; set; } public LargeImageEntity Image { get; set; } - [ForeignKey("Image")] public int ImageId { get; set; } diff --git a/src/EntityFramework_LoL/Sources/MyFlib/LolDbContext.cs b/src/EntityFramework_LoL/Sources/MyFlib/LolDbContext.cs index 3291f49..192ebd2 100644 --- a/src/EntityFramework_LoL/Sources/MyFlib/LolDbContext.cs +++ b/src/EntityFramework_LoL/Sources/MyFlib/LolDbContext.cs @@ -12,6 +12,7 @@ namespace MyFlib public DbSet Champions { get; set; } public DbSet Skills { get; set; } public DbSet Skins { get; set; } + public DbSet Runes { get; set; } public LolDbContext() { } @@ -27,31 +28,42 @@ namespace MyFlib } protected override void OnModelCreating(ModelBuilder modelBuilder) { - var image1 = new LargeImageEntity { Id = 1, Base64 = "empty" }; - var image2 = new LargeImageEntity { Id = 2, Base64 = " " }; + //LargeImageEntity + LargeImageEntity image1 = new LargeImageEntity { Id = 1, Base64 = "empty" }; + LargeImageEntity image2 = new LargeImageEntity { Id = 2, Base64 = " " }; modelBuilder.Entity().HasData(image1, image2); + //ChampionEntity modelBuilder.Entity().HasKey(e => e.Id); modelBuilder.Entity().Property(e => e.Id).ValueGeneratedOnAdd(); - modelBuilder.Entity().HasData( - new { Id = Guid.Parse("{4422C524-B2CB-43EF-8263-990C3CEA7CAE}"), Name = "Akali", Class = ChampionClassEntity.Assassin, Bio = "", Icon = "", ImageId = 1 }, - new { Id = Guid.Parse("{A4F84D92-C20F-4F2D-B3F9-CA00EF556E72}"), Name = "Aatrox", Class = ChampionClassEntity.Fighter, Bio = "", Icon = "", ImageId = 2 }, - new { Id = Guid.Parse("{AE5FE535-F041-445E-B570-28B75BC78CB9}"), Name = "Ahri", Class = ChampionClassEntity.Mage, Bio = "", Icon = "", ImageId = 1 }, - new { Id = Guid.Parse("{3708dcfd-02a1-491e-b4f7-e75bf274cf23}"), Name = "Akshan", Class = ChampionClassEntity.Marksman, Bio = "", Icon = "", ImageId = 1 }, - new { Id = Guid.Parse("{7f7746fa-b1cb-49da-9409-4b3e6910500e}"), Name = "Bard", Class = ChampionClassEntity.Support, Bio = "", Icon = "", ImageId = 1 }, - new { Id = Guid.Parse("{36ad2a82-d17b-47de-8a95-6e154a7df557}"), Name = "Alistar", Class = ChampionClassEntity.Tank, Bio = "", Icon = "", ImageId = 1 } - ); + ChampionEntity Akali = new ChampionEntity { Id = Guid.Parse("{4422C524-B2CB-43EF-8263-990C3CEA7CAE}"), Name = "Akali", Class = ChampionClassEntity.Assassin, Bio = "", Icon = "", ImageId = 1 }; + ChampionEntity Aatrox = new ChampionEntity { Id = Guid.Parse("{A4F84D92-C20F-4F2D-B3F9-CA00EF556E72}"), Name = "Aatrox", Class = ChampionClassEntity.Fighter, Bio = "", Icon = "", ImageId = 2 }; + ChampionEntity Ahri = new ChampionEntity { Id = Guid.Parse("{AE5FE535-F041-445E-B570-28B75BC78CB9}"), Name = "Ahri", Class = ChampionClassEntity.Mage, Bio = "", Icon = "", ImageId = 1 }; + ChampionEntity Akshan = new ChampionEntity { Id = Guid.Parse("{3708dcfd-02a1-491e-b4f7-e75bf274cf23}"), Name = "Akshan", Class = ChampionClassEntity.Marksman, Bio = "", Icon = "", ImageId = 1 }; + ChampionEntity Bard = new ChampionEntity { Id = Guid.Parse("{7f7746fa-b1cb-49da-9409-4b3e6910500e}"), Name = "Bard", Class = ChampionClassEntity.Support, Bio = "", Icon = "", ImageId = 1 }; + ChampionEntity Alistar = new ChampionEntity { Id = Guid.Parse("{36ad2a82-d17b-47de-8a95-6e154a7df557}"), Name = "Alistar", Class = ChampionClassEntity.Tank, Bio = "", Icon = "", ImageId = 1 }; + + + modelBuilder.Entity().HasData(Akali, Aatrox, Ahri, Akshan, Bard, Alistar); + //SkillEntity modelBuilder.Entity().HasData( new { Name = "Boule de feu", Description = "Fire!", Type = SkillTypeEntity.Basic }, new { Name = "White Star", Description = "Random damage", Type = SkillTypeEntity.Ultimate } ); + //SkinEntity + modelBuilder.Entity().HasData( + new SkinEntity { Name = "Akali Infernale", ChampionForeignKey = Guid.Parse("{4422C524-B2CB-43EF-8263-990C3CEA7CAE}"), Description = "Djinn qu'on invoque en dessous du monde, l'Infernale connue sous le nom d'Akali réduira en cendres les ennemis de son maître… mais le prix de son service est toujours exorbitant.", Icon = "empty", Price = 520, ImageId = 1 }, + new SkinEntity { Name = "Akshan Cyberpop", ChampionForeignKey = Guid.Parse("{3708dcfd-02a1-491e-b4f7-e75bf274cf23}"), Description = "Les bas-fonds d'Audio City ont un nouveau héros : le Rebelle fluo. Cette position, Akshan la doit à son courage, sa sagesse et sa capacité à s'infiltrer dans des bâtiments d'affaires hautement sécurisés, et ce, sans être repéré. Son charme ravageur l'a aussi beaucoup aidé.", Icon = "empty", Price = 1350, ImageId = 2 } + ); + + //RuneEntity modelBuilder.Entity().HasData( - new SkinEntity { Name = "Yone fleur spirituelle", Description = "Spirit Blossom", Icon = "empty", Price = 975, ImageId = 1 }, - new SkinEntity { Name = "Yasuo Lune de sang", Description = "Blood Moon", Icon = "empty", Price = 975, ImageId = 2 } + new SkinEntity { Name = "Akali Infernale", ChampionForeignKey = Guid.Parse("{4422C524-B2CB-43EF-8263-990C3CEA7CAE}"), Description = "Djinn qu'on invoque en dessous du monde, l'Infernale connue sous le nom d'Akali réduira en cendres les ennemis de son maître… mais le prix de son service est toujours exorbitant.", Icon = "empty", Price = 520, ImageId = 1 }, + new SkinEntity { Name = "Akshan Cyberpop", ChampionForeignKey = Guid.Parse("{3708dcfd-02a1-491e-b4f7-e75bf274cf23}"), Description = "Les bas-fonds d'Audio City ont un nouveau héros : le Rebelle fluo. Cette position, Akshan la doit à son courage, sa sagesse et sa capacité à s'infiltrer dans des bâtiments d'affaires hautement sécurisés, et ce, sans être repéré. Son charme ravageur l'a aussi beaucoup aidé.", Icon = "empty", Price = 1350, ImageId = 2 } ); } diff --git a/src/EntityFramework_LoL/Sources/MyFlib/Migrations/20230301171929_monNomDeMigration.Designer.cs b/src/EntityFramework_LoL/Sources/MyFlib/Migrations/20230301171929_monNomDeMigration.Designer.cs new file mode 100644 index 0000000..0378080 --- /dev/null +++ b/src/EntityFramework_LoL/Sources/MyFlib/Migrations/20230301171929_monNomDeMigration.Designer.cs @@ -0,0 +1,276 @@ +// +using System; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using MyFlib; + +#nullable disable + +namespace MyFlib.Migrations +{ + [DbContext(typeof(LolDbContext))] + [Migration("20230301171929_monNomDeMigration")] + partial class monNomDeMigration + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder.HasAnnotation("ProductVersion", "7.0.2"); + + modelBuilder.Entity("MyFlib.ChampionEntity", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("TEXT"); + + b.Property("Bio") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("TEXT"); + + b.Property("Class") + .HasColumnType("INTEGER"); + + b.Property("Icon") + .IsRequired() + .HasColumnType("TEXT"); + + b.Property("ImageId") + .HasColumnType("INTEGER"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(64) + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("ImageId"); + + b.ToTable("Champions"); + + b.HasData( + new + { + Id = new Guid("4422c524-b2cb-43ef-8263-990c3cea7cae"), + Bio = "", + Class = 1, + Icon = "", + ImageId = 1, + Name = "Akali" + }, + new + { + Id = new Guid("a4f84d92-c20f-4f2d-b3f9-ca00ef556e72"), + Bio = "", + Class = 2, + Icon = "", + ImageId = 2, + Name = "Aatrox" + }, + new + { + Id = new Guid("ae5fe535-f041-445e-b570-28b75bc78cb9"), + Bio = "", + Class = 3, + Icon = "", + ImageId = 1, + Name = "Ahri" + }, + new + { + Id = new Guid("3708dcfd-02a1-491e-b4f7-e75bf274cf23"), + Bio = "", + Class = 4, + Icon = "", + ImageId = 1, + Name = "Akshan" + }, + new + { + Id = new Guid("7f7746fa-b1cb-49da-9409-4b3e6910500e"), + Bio = "", + Class = 5, + Icon = "", + ImageId = 1, + Name = "Bard" + }, + new + { + Id = new Guid("36ad2a82-d17b-47de-8a95-6e154a7df557"), + Bio = "", + Class = 6, + Icon = "", + ImageId = 1, + Name = "Alistar" + }); + }); + + modelBuilder.Entity("MyFlib.LargeImageEntity", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("Base64") + .IsRequired() + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.ToTable("LargeImageEntity"); + + b.HasData( + new + { + Id = 1, + Base64 = "empty" + }, + new + { + Id = 2, + Base64 = " " + }); + }); + + modelBuilder.Entity("MyFlib.SkillEntity", b => + { + b.Property("Name") + .HasMaxLength(256) + .HasColumnType("TEXT"); + + b.Property("ChampionEntityId") + .HasColumnType("TEXT"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(500) + .HasColumnType("TEXT"); + + b.Property("Type") + .HasColumnType("INTEGER"); + + b.HasKey("Name"); + + b.HasIndex("ChampionEntityId"); + + b.ToTable("Skills"); + + b.HasData( + new + { + Name = "Boule de feu", + Description = "Fire!", + Type = 1 + }, + new + { + Name = "White Star", + Description = "Random damage", + Type = 3 + }); + }); + + modelBuilder.Entity("MyFlib.SkinEntity", b => + { + b.Property("Name") + .HasMaxLength(256) + .HasColumnType("TEXT"); + + b.Property("ChampionForeignKey") + .HasColumnType("TEXT"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(500) + .HasColumnType("TEXT"); + + b.Property("Icon") + .IsRequired() + .HasColumnType("TEXT"); + + b.Property("ImageId") + .HasColumnType("INTEGER"); + + b.Property("Price") + .HasColumnType("REAL"); + + b.HasKey("Name"); + + b.HasIndex("ChampionForeignKey"); + + b.HasIndex("ImageId"); + + b.ToTable("Skins"); + + b.HasData( + new + { + Name = "Akali Infernale", + ChampionForeignKey = new Guid("4422c524-b2cb-43ef-8263-990c3cea7cae"), + Description = "Djinn qu'on invoque en dessous du monde, l'Infernale connue sous le nom d'Akali réduira en cendres les ennemis de son maître… mais le prix de son service est toujours exorbitant.", + Icon = "empty", + ImageId = 1, + Price = 520f + }, + new + { + Name = "Akshan Cyberpop", + ChampionForeignKey = new Guid("3708dcfd-02a1-491e-b4f7-e75bf274cf23"), + Description = "Les bas-fonds d'Audio City ont un nouveau héros : le Rebelle fluo. Cette position, Akshan la doit à son courage, sa sagesse et sa capacité à s'infiltrer dans des bâtiments d'affaires hautement sécurisés, et ce, sans être repéré. Son charme ravageur l'a aussi beaucoup aidé.", + Icon = "empty", + ImageId = 2, + Price = 1350f + }); + }); + + modelBuilder.Entity("MyFlib.ChampionEntity", b => + { + b.HasOne("MyFlib.LargeImageEntity", "Image") + .WithMany() + .HasForeignKey("ImageId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Image"); + }); + + modelBuilder.Entity("MyFlib.SkillEntity", b => + { + b.HasOne("MyFlib.ChampionEntity", null) + .WithMany("Skills") + .HasForeignKey("ChampionEntityId"); + }); + + modelBuilder.Entity("MyFlib.SkinEntity", b => + { + b.HasOne("MyFlib.ChampionEntity", "Champion") + .WithMany("Skins") + .HasForeignKey("ChampionForeignKey") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("MyFlib.LargeImageEntity", "Image") + .WithMany() + .HasForeignKey("ImageId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Champion"); + + b.Navigation("Image"); + }); + + modelBuilder.Entity("MyFlib.ChampionEntity", b => + { + b.Navigation("Skills"); + + b.Navigation("Skins"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/src/EntityFramework_LoL/Sources/MyFlib/Migrations/20230301171929_monNomDeMigration.cs b/src/EntityFramework_LoL/Sources/MyFlib/Migrations/20230301171929_monNomDeMigration.cs new file mode 100644 index 0000000..6ff02ea --- /dev/null +++ b/src/EntityFramework_LoL/Sources/MyFlib/Migrations/20230301171929_monNomDeMigration.cs @@ -0,0 +1,175 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +#pragma warning disable CA1814 // Prefer jagged arrays over multidimensional + +namespace MyFlib.Migrations +{ + /// + public partial class monNomDeMigration : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.CreateTable( + name: "LargeImageEntity", + columns: table => new + { + Id = table.Column(type: "INTEGER", nullable: false) + .Annotation("Sqlite:Autoincrement", true), + Base64 = table.Column(type: "TEXT", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_LargeImageEntity", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "Champions", + columns: table => new + { + Id = table.Column(type: "TEXT", nullable: false), + Name = table.Column(type: "TEXT", maxLength: 64, nullable: false), + Bio = table.Column(type: "TEXT", maxLength: 255, nullable: false), + Icon = table.Column(type: "TEXT", nullable: false), + Class = table.Column(type: "INTEGER", nullable: false), + ImageId = table.Column(type: "INTEGER", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_Champions", x => x.Id); + table.ForeignKey( + name: "FK_Champions_LargeImageEntity_ImageId", + column: x => x.ImageId, + principalTable: "LargeImageEntity", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "Skills", + columns: table => new + { + Name = table.Column(type: "TEXT", maxLength: 256, nullable: false), + Description = table.Column(type: "TEXT", maxLength: 500, nullable: false), + Type = table.Column(type: "INTEGER", nullable: false), + ChampionEntityId = table.Column(type: "TEXT", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_Skills", x => x.Name); + table.ForeignKey( + name: "FK_Skills_Champions_ChampionEntityId", + column: x => x.ChampionEntityId, + principalTable: "Champions", + principalColumn: "Id"); + }); + + migrationBuilder.CreateTable( + name: "Skins", + columns: table => new + { + Name = table.Column(type: "TEXT", maxLength: 256, nullable: false), + Description = table.Column(type: "TEXT", maxLength: 500, nullable: false), + Icon = table.Column(type: "TEXT", nullable: false), + Price = table.Column(type: "REAL", nullable: false), + ChampionForeignKey = table.Column(type: "TEXT", nullable: false), + ImageId = table.Column(type: "INTEGER", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_Skins", x => x.Name); + table.ForeignKey( + name: "FK_Skins_Champions_ChampionForeignKey", + column: x => x.ChampionForeignKey, + principalTable: "Champions", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_Skins_LargeImageEntity_ImageId", + column: x => x.ImageId, + principalTable: "LargeImageEntity", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.InsertData( + table: "LargeImageEntity", + columns: new[] { "Id", "Base64" }, + values: new object[,] + { + { 1, "empty" }, + { 2, " " } + }); + + migrationBuilder.InsertData( + table: "Skills", + columns: new[] { "Name", "ChampionEntityId", "Description", "Type" }, + values: new object[,] + { + { "Boule de feu", null, "Fire!", 1 }, + { "White Star", null, "Random damage", 3 } + }); + + migrationBuilder.InsertData( + table: "Champions", + columns: new[] { "Id", "Bio", "Class", "Icon", "ImageId", "Name" }, + values: new object[,] + { + { new Guid("36ad2a82-d17b-47de-8a95-6e154a7df557"), "", 6, "", 1, "Alistar" }, + { new Guid("3708dcfd-02a1-491e-b4f7-e75bf274cf23"), "", 4, "", 1, "Akshan" }, + { new Guid("4422c524-b2cb-43ef-8263-990c3cea7cae"), "", 1, "", 1, "Akali" }, + { new Guid("7f7746fa-b1cb-49da-9409-4b3e6910500e"), "", 5, "", 1, "Bard" }, + { new Guid("a4f84d92-c20f-4f2d-b3f9-ca00ef556e72"), "", 2, "", 2, "Aatrox" }, + { new Guid("ae5fe535-f041-445e-b570-28b75bc78cb9"), "", 3, "", 1, "Ahri" } + }); + + migrationBuilder.InsertData( + table: "Skins", + columns: new[] { "Name", "ChampionForeignKey", "Description", "Icon", "ImageId", "Price" }, + values: new object[,] + { + { "Akali Infernale", new Guid("4422c524-b2cb-43ef-8263-990c3cea7cae"), "Djinn qu'on invoque en dessous du monde, l'Infernale connue sous le nom d'Akali réduira en cendres les ennemis de son maître… mais le prix de son service est toujours exorbitant.", "empty", 1, 520f }, + { "Akshan Cyberpop", new Guid("3708dcfd-02a1-491e-b4f7-e75bf274cf23"), "Les bas-fonds d'Audio City ont un nouveau héros : le Rebelle fluo. Cette position, Akshan la doit à son courage, sa sagesse et sa capacité à s'infiltrer dans des bâtiments d'affaires hautement sécurisés, et ce, sans être repéré. Son charme ravageur l'a aussi beaucoup aidé.", "empty", 2, 1350f } + }); + + migrationBuilder.CreateIndex( + name: "IX_Champions_ImageId", + table: "Champions", + column: "ImageId"); + + migrationBuilder.CreateIndex( + name: "IX_Skills_ChampionEntityId", + table: "Skills", + column: "ChampionEntityId"); + + migrationBuilder.CreateIndex( + name: "IX_Skins_ChampionForeignKey", + table: "Skins", + column: "ChampionForeignKey"); + + migrationBuilder.CreateIndex( + name: "IX_Skins_ImageId", + table: "Skins", + column: "ImageId"); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "Skills"); + + migrationBuilder.DropTable( + name: "Skins"); + + migrationBuilder.DropTable( + name: "Champions"); + + migrationBuilder.DropTable( + name: "LargeImageEntity"); + } + } +} diff --git a/src/EntityFramework_LoL/Sources/MyFlib/Migrations/LolDbContextModelSnapshot.cs b/src/EntityFramework_LoL/Sources/MyFlib/Migrations/LolDbContextModelSnapshot.cs new file mode 100644 index 0000000..f0dd4a8 --- /dev/null +++ b/src/EntityFramework_LoL/Sources/MyFlib/Migrations/LolDbContextModelSnapshot.cs @@ -0,0 +1,273 @@ +// +using System; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using MyFlib; + +#nullable disable + +namespace MyFlib.Migrations +{ + [DbContext(typeof(LolDbContext))] + partial class LolDbContextModelSnapshot : ModelSnapshot + { + protected override void BuildModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder.HasAnnotation("ProductVersion", "7.0.2"); + + modelBuilder.Entity("MyFlib.ChampionEntity", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("TEXT"); + + b.Property("Bio") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("TEXT"); + + b.Property("Class") + .HasColumnType("INTEGER"); + + b.Property("Icon") + .IsRequired() + .HasColumnType("TEXT"); + + b.Property("ImageId") + .HasColumnType("INTEGER"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(64) + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("ImageId"); + + b.ToTable("Champions"); + + b.HasData( + new + { + Id = new Guid("4422c524-b2cb-43ef-8263-990c3cea7cae"), + Bio = "", + Class = 1, + Icon = "", + ImageId = 1, + Name = "Akali" + }, + new + { + Id = new Guid("a4f84d92-c20f-4f2d-b3f9-ca00ef556e72"), + Bio = "", + Class = 2, + Icon = "", + ImageId = 2, + Name = "Aatrox" + }, + new + { + Id = new Guid("ae5fe535-f041-445e-b570-28b75bc78cb9"), + Bio = "", + Class = 3, + Icon = "", + ImageId = 1, + Name = "Ahri" + }, + new + { + Id = new Guid("3708dcfd-02a1-491e-b4f7-e75bf274cf23"), + Bio = "", + Class = 4, + Icon = "", + ImageId = 1, + Name = "Akshan" + }, + new + { + Id = new Guid("7f7746fa-b1cb-49da-9409-4b3e6910500e"), + Bio = "", + Class = 5, + Icon = "", + ImageId = 1, + Name = "Bard" + }, + new + { + Id = new Guid("36ad2a82-d17b-47de-8a95-6e154a7df557"), + Bio = "", + Class = 6, + Icon = "", + ImageId = 1, + Name = "Alistar" + }); + }); + + modelBuilder.Entity("MyFlib.LargeImageEntity", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("Base64") + .IsRequired() + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.ToTable("LargeImageEntity"); + + b.HasData( + new + { + Id = 1, + Base64 = "empty" + }, + new + { + Id = 2, + Base64 = " " + }); + }); + + modelBuilder.Entity("MyFlib.SkillEntity", b => + { + b.Property("Name") + .HasMaxLength(256) + .HasColumnType("TEXT"); + + b.Property("ChampionEntityId") + .HasColumnType("TEXT"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(500) + .HasColumnType("TEXT"); + + b.Property("Type") + .HasColumnType("INTEGER"); + + b.HasKey("Name"); + + b.HasIndex("ChampionEntityId"); + + b.ToTable("Skills"); + + b.HasData( + new + { + Name = "Boule de feu", + Description = "Fire!", + Type = 1 + }, + new + { + Name = "White Star", + Description = "Random damage", + Type = 3 + }); + }); + + modelBuilder.Entity("MyFlib.SkinEntity", b => + { + b.Property("Name") + .HasMaxLength(256) + .HasColumnType("TEXT"); + + b.Property("ChampionForeignKey") + .HasColumnType("TEXT"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(500) + .HasColumnType("TEXT"); + + b.Property("Icon") + .IsRequired() + .HasColumnType("TEXT"); + + b.Property("ImageId") + .HasColumnType("INTEGER"); + + b.Property("Price") + .HasColumnType("REAL"); + + b.HasKey("Name"); + + b.HasIndex("ChampionForeignKey"); + + b.HasIndex("ImageId"); + + b.ToTable("Skins"); + + b.HasData( + new + { + Name = "Akali Infernale", + ChampionForeignKey = new Guid("4422c524-b2cb-43ef-8263-990c3cea7cae"), + Description = "Djinn qu'on invoque en dessous du monde, l'Infernale connue sous le nom d'Akali réduira en cendres les ennemis de son maître… mais le prix de son service est toujours exorbitant.", + Icon = "empty", + ImageId = 1, + Price = 520f + }, + new + { + Name = "Akshan Cyberpop", + ChampionForeignKey = new Guid("3708dcfd-02a1-491e-b4f7-e75bf274cf23"), + Description = "Les bas-fonds d'Audio City ont un nouveau héros : le Rebelle fluo. Cette position, Akshan la doit à son courage, sa sagesse et sa capacité à s'infiltrer dans des bâtiments d'affaires hautement sécurisés, et ce, sans être repéré. Son charme ravageur l'a aussi beaucoup aidé.", + Icon = "empty", + ImageId = 2, + Price = 1350f + }); + }); + + modelBuilder.Entity("MyFlib.ChampionEntity", b => + { + b.HasOne("MyFlib.LargeImageEntity", "Image") + .WithMany() + .HasForeignKey("ImageId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Image"); + }); + + modelBuilder.Entity("MyFlib.SkillEntity", b => + { + b.HasOne("MyFlib.ChampionEntity", null) + .WithMany("Skills") + .HasForeignKey("ChampionEntityId"); + }); + + modelBuilder.Entity("MyFlib.SkinEntity", b => + { + b.HasOne("MyFlib.ChampionEntity", "Champion") + .WithMany("Skins") + .HasForeignKey("ChampionForeignKey") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("MyFlib.LargeImageEntity", "Image") + .WithMany() + .HasForeignKey("ImageId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Champion"); + + b.Navigation("Image"); + }); + + modelBuilder.Entity("MyFlib.ChampionEntity", b => + { + b.Navigation("Skills"); + + b.Navigation("Skins"); + }); +#pragma warning restore 612, 618 + } + } +}