From 2a238d65e4ce66d6c79d287a19cefcda96afc747 Mon Sep 17 00:00:00 2001 From: Sergey Chebotar Date: Wed, 1 Feb 2023 09:26:53 +0300 Subject: Edit Seed data class --- Migrations/20230201044832_Init.Designer.cs | 79 ------------------------------ Migrations/20230201044832_Init.cs | 63 ------------------------ Migrations/20230201062503_Init.Designer.cs | 79 ++++++++++++++++++++++++++++++ Migrations/20230201062503_Init.cs | 63 ++++++++++++++++++++++++ Models/DataContext.cs | 8 +-- Models/SeedData.cs | 54 +++++++++++--------- Models/UnderwearBundle.cs | 2 +- Program.cs | 2 +- 8 files changed, 179 insertions(+), 171 deletions(-) delete mode 100644 Migrations/20230201044832_Init.Designer.cs delete mode 100644 Migrations/20230201044832_Init.cs create mode 100644 Migrations/20230201062503_Init.Designer.cs create mode 100644 Migrations/20230201062503_Init.cs diff --git a/Migrations/20230201044832_Init.Designer.cs b/Migrations/20230201044832_Init.Designer.cs deleted file mode 100644 index 6b0762e..0000000 --- a/Migrations/20230201044832_Init.Designer.cs +++ /dev/null @@ -1,79 +0,0 @@ -// -using System; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; -using MyDarling.Models; - -#nullable disable - -namespace MyDarling.Migrations -{ - [DbContext(typeof(DataContext))] - [Migration("20230201044832_Init")] - partial class Init - { - /// - protected override void BuildTargetModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder.HasAnnotation("ProductVersion", "7.0.2"); - - modelBuilder.Entity("MyDarling.Models.Figure", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property("FilePath") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("UnderwearBundleId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("UnderwearBundleId"); - - b.ToTable("Figures"); - }); - - modelBuilder.Entity("MyDarling.Models.UnderwearBundle", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property("Description") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("Name") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("Price") - .HasColumnType("TEXT"); - - b.HasKey("Id"); - - b.ToTable("UnderwearBundles"); - }); - - modelBuilder.Entity("MyDarling.Models.Figure", b => - { - b.HasOne("MyDarling.Models.UnderwearBundle", null) - .WithMany("Figures") - .HasForeignKey("UnderwearBundleId"); - }); - - modelBuilder.Entity("MyDarling.Models.UnderwearBundle", b => - { - b.Navigation("Figures"); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/Migrations/20230201044832_Init.cs b/Migrations/20230201044832_Init.cs deleted file mode 100644 index fe709a8..0000000 --- a/Migrations/20230201044832_Init.cs +++ /dev/null @@ -1,63 +0,0 @@ -using Microsoft.EntityFrameworkCore.Migrations; - -#nullable disable - -namespace MyDarling.Migrations -{ - /// - public partial class Init : Migration - { - /// - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.CreateTable( - name: "UnderwearBundles", - columns: table => new - { - Id = table.Column(type: "INTEGER", nullable: false) - .Annotation("Sqlite:Autoincrement", true), - Name = table.Column(type: "TEXT", nullable: false), - Description = table.Column(type: "TEXT", nullable: false), - Price = table.Column(type: "TEXT", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_UnderwearBundles", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "Figures", - columns: table => new - { - Id = table.Column(type: "INTEGER", nullable: false) - .Annotation("Sqlite:Autoincrement", true), - FilePath = table.Column(type: "TEXT", nullable: false), - UnderwearBundleId = table.Column(type: "INTEGER", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_Figures", x => x.Id); - table.ForeignKey( - name: "FK_Figures_UnderwearBundles_UnderwearBundleId", - column: x => x.UnderwearBundleId, - principalTable: "UnderwearBundles", - principalColumn: "Id"); - }); - - migrationBuilder.CreateIndex( - name: "IX_Figures_UnderwearBundleId", - table: "Figures", - column: "UnderwearBundleId"); - } - - /// - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropTable( - name: "Figures"); - - migrationBuilder.DropTable( - name: "UnderwearBundles"); - } - } -} diff --git a/Migrations/20230201062503_Init.Designer.cs b/Migrations/20230201062503_Init.Designer.cs new file mode 100644 index 0000000..18bb01e --- /dev/null +++ b/Migrations/20230201062503_Init.Designer.cs @@ -0,0 +1,79 @@ +// +using System; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using MyDarling.Models; + +#nullable disable + +namespace MyDarling.Migrations +{ + [DbContext(typeof(DataContext))] + [Migration("20230201062503_Init")] + partial class Init + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder.HasAnnotation("ProductVersion", "7.0.2"); + + modelBuilder.Entity("MyDarling.Models.Figure", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("FilePath") + .IsRequired() + .HasColumnType("TEXT"); + + b.Property("UnderwearBundleId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("UnderwearBundleId"); + + b.ToTable("Figures"); + }); + + modelBuilder.Entity("MyDarling.Models.UnderwearBundle", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("Description") + .IsRequired() + .HasColumnType("TEXT"); + + b.Property("Name") + .IsRequired() + .HasColumnType("TEXT"); + + b.Property("Price") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.ToTable("UnderwearBundles"); + }); + + modelBuilder.Entity("MyDarling.Models.Figure", b => + { + b.HasOne("MyDarling.Models.UnderwearBundle", null) + .WithMany("Figures") + .HasForeignKey("UnderwearBundleId"); + }); + + modelBuilder.Entity("MyDarling.Models.UnderwearBundle", b => + { + b.Navigation("Figures"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/Migrations/20230201062503_Init.cs b/Migrations/20230201062503_Init.cs new file mode 100644 index 0000000..fe709a8 --- /dev/null +++ b/Migrations/20230201062503_Init.cs @@ -0,0 +1,63 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace MyDarling.Migrations +{ + /// + public partial class Init : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.CreateTable( + name: "UnderwearBundles", + columns: table => new + { + Id = table.Column(type: "INTEGER", nullable: false) + .Annotation("Sqlite:Autoincrement", true), + Name = table.Column(type: "TEXT", nullable: false), + Description = table.Column(type: "TEXT", nullable: false), + Price = table.Column(type: "TEXT", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_UnderwearBundles", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "Figures", + columns: table => new + { + Id = table.Column(type: "INTEGER", nullable: false) + .Annotation("Sqlite:Autoincrement", true), + FilePath = table.Column(type: "TEXT", nullable: false), + UnderwearBundleId = table.Column(type: "INTEGER", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_Figures", x => x.Id); + table.ForeignKey( + name: "FK_Figures_UnderwearBundles_UnderwearBundleId", + column: x => x.UnderwearBundleId, + principalTable: "UnderwearBundles", + principalColumn: "Id"); + }); + + migrationBuilder.CreateIndex( + name: "IX_Figures_UnderwearBundleId", + table: "Figures", + column: "UnderwearBundleId"); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "Figures"); + + migrationBuilder.DropTable( + name: "UnderwearBundles"); + } + } +} diff --git a/Models/DataContext.cs b/Models/DataContext.cs index c874420..23e80ab 100644 --- a/Models/DataContext.cs +++ b/Models/DataContext.cs @@ -15,10 +15,10 @@ namespace MyDarling.Models opts.UseSqlite(configuration.GetConnectionString("MyDarlingDb")); } - protected override void OnModelCreating(ModelBuilder builder) - { - builder.Entity().HasMany(b => b.Figures).WithOne(); - } + // protected override void OnModelCreating(ModelBuilder builder) + // { + // builder.Entity().HasMany(b => b.Figures).WithOne(); + // } public DbSet UnderwearBundles => Set(); public DbSet
Figures => Set
(); diff --git a/Models/SeedData.cs b/Models/SeedData.cs index 1f0ff76..c7b8692 100644 --- a/Models/SeedData.cs +++ b/Models/SeedData.cs @@ -8,20 +8,38 @@ namespace MyDarling.Models context.Database.Migrate(); if (context.UnderwearBundles.Count() == 0) { - var alice = new UnderwearBundle + var aliceFigures = new List
{ - Name = "Alice", - Figures = new List
+ new Figure() + { + FilePath = "/content/0/img/IMG_4896.JPG" + }, + new Figure() + { + FilePath = "/content/0/img/IMG_4902.JPG" + } + }; + + var nikkiFigures = new List
+ { + new Figure() { - new Figure() - { - FilePath = "/content/0/img/IMG_4896.JPG" - }, - new Figure() - { - FilePath = "/content/0/img/IMG_4902.JPG" - } + FilePath = "/content/1/img/IMG_4897.JPG" }, + new Figure() + { + FilePath = "/content/1/img/IMG_4898.JPG" + } + }; + + context.Figures.AddRange(aliceFigures); + context.Figures.AddRange(nikkiFigures); + context.SaveChanges(); + + var alice = new UnderwearBundle + { + Name = "Alice", + Figures = aliceFigures, Description = @"Комплект из бежевого эластичного кружева с голубой отделкой. В комплект входит бра, 2 трусиков (на высокой посадке и стандартной на регуляции) и чокер. Низ можно сделать на выбор стринги/бразильянки.", @@ -31,23 +49,13 @@ namespace MyDarling.Models var nikki = new UnderwearBundle { Name = "Nikki", - Figures = new List
- { - new Figure() - { - FilePath = "/content/1/img/IMG_4897.JPG" - }, - new Figure() - { - FilePath = "/content/1/img/IMG_4898.JPG" - } - }, + Figures = nikkiFigures, Description = @"Базовый сет из мягкой эластичной сетки. В комплект входит лиф на косточках и 2 трусиков – бразильянки на высокой посадке и стринги на стандартной посадке с регуляцией. Доступен в цветах: желтый, черный, бежевый молочный.", Price = 3800 }; - + context.UnderwearBundles.AddRange(alice, nikki); context.SaveChanges(); } diff --git a/Models/UnderwearBundle.cs b/Models/UnderwearBundle.cs index 5617b07..1f451e6 100644 --- a/Models/UnderwearBundle.cs +++ b/Models/UnderwearBundle.cs @@ -4,7 +4,7 @@ namespace MyDarling.Models { public int Id { get; set; } public string Name { get; set; } = "My Darling Bundle"; - public ICollection
Figures { get; set; } = new List
(); + public List
Figures { get; set; } = new List
(); public string Description { get; set; } = string.Empty; public decimal Price { get; set; } } diff --git a/Program.cs b/Program.cs index 91c4c5d..7a4bd1d 100644 --- a/Program.cs +++ b/Program.cs @@ -17,6 +17,6 @@ app.MapControllers(); app.MapDefaultControllerRoute(); var context = app.Services.CreateScope().ServiceProvider.GetRequiredService(); - +SeedData.SeedDatabase(context); app.Run(); \ No newline at end of file -- cgit v1.2.3