diff --git a/src/Infrastructure/Data/Migrations/20190911011026_UpdateCatalogModels.Designer.cs b/src/Infrastructure/Data/Migrations/20190911011026_UpdateCatalogModels.Designer.cs
new file mode 100644
index 0000000..4a56fb1
--- /dev/null
+++ b/src/Infrastructure/Data/Migrations/20190911011026_UpdateCatalogModels.Designer.cs
@@ -0,0 +1,252 @@
+//
+using System;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Metadata;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+using Microsoft.eShopWeb.Infrastructure.Data;
+
+namespace Microsoft.eShopWeb.Infrastructure.Data.Migrations
+{
+ [DbContext(typeof(CatalogContext))]
+ [Migration("20190911011026_UpdateCatalogModels")]
+ partial class UpdateCatalogModels
+ {
+ protected override void BuildTargetModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder
+ .HasAnnotation("ProductVersion", "2.2.6-servicing-10079")
+ .HasAnnotation("Relational:MaxIdentifierLength", 128)
+ .HasAnnotation("Relational:Sequence:.catalog_brand_hilo", "'catalog_brand_hilo', '', '1', '10', '', '', 'Int64', 'False'")
+ .HasAnnotation("Relational:Sequence:.catalog_hilo", "'catalog_hilo', '', '1', '10', '', '', 'Int64', 'False'")
+ .HasAnnotation("Relational:Sequence:.catalog_type_hilo", "'catalog_type_hilo', '', '1', '10', '', '', 'Int64', 'False'")
+ .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
+
+ modelBuilder.Entity("Microsoft.eShopWeb.ApplicationCore.Entities.BasketAggregate.Basket", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
+
+ b.Property("BuyerId");
+
+ b.HasKey("Id");
+
+ b.ToTable("Baskets");
+ });
+
+ modelBuilder.Entity("Microsoft.eShopWeb.ApplicationCore.Entities.BasketAggregate.BasketItem", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
+
+ b.Property("BasketId");
+
+ b.Property("CatalogItemId");
+
+ b.Property("Quantity");
+
+ b.Property("UnitPrice")
+ .HasColumnType("decimal(18,2)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("BasketId");
+
+ b.ToTable("BasketItems");
+ });
+
+ modelBuilder.Entity("Microsoft.eShopWeb.ApplicationCore.Entities.CatalogBrand", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasAnnotation("SqlServer:HiLoSequenceName", "catalog_brand_hilo")
+ .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.SequenceHiLo);
+
+ b.Property("Brand")
+ .IsRequired()
+ .HasMaxLength(100);
+
+ b.HasKey("Id");
+
+ b.ToTable("CatalogBrand");
+ });
+
+ modelBuilder.Entity("Microsoft.eShopWeb.ApplicationCore.Entities.CatalogItem", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasAnnotation("SqlServer:HiLoSequenceName", "catalog_hilo")
+ .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.SequenceHiLo);
+
+ b.Property("CatalogBrandId");
+
+ b.Property("CatalogTypeId");
+
+ b.Property("Description");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasMaxLength(50);
+
+ b.Property("PictureUri");
+
+ b.Property("Price")
+ .HasColumnType("decimal(18,2)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("CatalogBrandId");
+
+ b.HasIndex("CatalogTypeId");
+
+ b.ToTable("Catalog");
+ });
+
+ modelBuilder.Entity("Microsoft.eShopWeb.ApplicationCore.Entities.CatalogType", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasAnnotation("SqlServer:HiLoSequenceName", "catalog_type_hilo")
+ .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.SequenceHiLo);
+
+ b.Property("Type")
+ .IsRequired()
+ .HasMaxLength(100);
+
+ b.HasKey("Id");
+
+ b.ToTable("CatalogType");
+ });
+
+ modelBuilder.Entity("Microsoft.eShopWeb.ApplicationCore.Entities.OrderAggregate.Order", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
+
+ b.Property("BuyerId");
+
+ b.Property("OrderDate");
+
+ b.HasKey("Id");
+
+ b.ToTable("Orders");
+ });
+
+ modelBuilder.Entity("Microsoft.eShopWeb.ApplicationCore.Entities.OrderAggregate.OrderItem", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
+
+ b.Property("OrderId");
+
+ b.Property("UnitPrice")
+ .HasColumnType("decimal(18,2)");
+
+ b.Property("Units");
+
+ b.HasKey("Id");
+
+ b.HasIndex("OrderId");
+
+ b.ToTable("OrderItems");
+ });
+
+ modelBuilder.Entity("Microsoft.eShopWeb.ApplicationCore.Entities.BasketAggregate.BasketItem", b =>
+ {
+ b.HasOne("Microsoft.eShopWeb.ApplicationCore.Entities.BasketAggregate.Basket")
+ .WithMany("Items")
+ .HasForeignKey("BasketId")
+ .OnDelete(DeleteBehavior.Cascade);
+ });
+
+ modelBuilder.Entity("Microsoft.eShopWeb.ApplicationCore.Entities.CatalogItem", b =>
+ {
+ b.HasOne("Microsoft.eShopWeb.ApplicationCore.Entities.CatalogBrand", "CatalogBrand")
+ .WithMany()
+ .HasForeignKey("CatalogBrandId")
+ .OnDelete(DeleteBehavior.Cascade);
+
+ b.HasOne("Microsoft.eShopWeb.ApplicationCore.Entities.CatalogType", "CatalogType")
+ .WithMany()
+ .HasForeignKey("CatalogTypeId")
+ .OnDelete(DeleteBehavior.Cascade);
+ });
+
+ modelBuilder.Entity("Microsoft.eShopWeb.ApplicationCore.Entities.OrderAggregate.Order", b =>
+ {
+ b.OwnsOne("Microsoft.eShopWeb.ApplicationCore.Entities.OrderAggregate.Address", "ShipToAddress", b1 =>
+ {
+ b1.Property("OrderId")
+ .ValueGeneratedOnAdd()
+ .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
+
+ b1.Property("City")
+ .IsRequired()
+ .HasMaxLength(100);
+
+ b1.Property("Country")
+ .IsRequired()
+ .HasMaxLength(90);
+
+ b1.Property("State")
+ .HasMaxLength(60);
+
+ b1.Property("Street")
+ .IsRequired()
+ .HasMaxLength(180);
+
+ b1.Property("ZipCode")
+ .IsRequired()
+ .HasMaxLength(18);
+
+ b1.HasKey("OrderId");
+
+ b1.ToTable("Orders");
+
+ b1.HasOne("Microsoft.eShopWeb.ApplicationCore.Entities.OrderAggregate.Order")
+ .WithOne("ShipToAddress")
+ .HasForeignKey("Microsoft.eShopWeb.ApplicationCore.Entities.OrderAggregate.Address", "OrderId")
+ .OnDelete(DeleteBehavior.Cascade);
+ });
+ });
+
+ modelBuilder.Entity("Microsoft.eShopWeb.ApplicationCore.Entities.OrderAggregate.OrderItem", b =>
+ {
+ b.HasOne("Microsoft.eShopWeb.ApplicationCore.Entities.OrderAggregate.Order")
+ .WithMany("OrderItems")
+ .HasForeignKey("OrderId");
+
+ b.OwnsOne("Microsoft.eShopWeb.ApplicationCore.Entities.OrderAggregate.CatalogItemOrdered", "ItemOrdered", b1 =>
+ {
+ b1.Property("OrderItemId")
+ .ValueGeneratedOnAdd()
+ .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
+
+ b1.Property("CatalogItemId");
+
+ b1.Property("PictureUri");
+
+ b1.Property("ProductName")
+ .IsRequired()
+ .HasMaxLength(50);
+
+ b1.HasKey("OrderItemId");
+
+ b1.ToTable("OrderItems");
+
+ b1.HasOne("Microsoft.eShopWeb.ApplicationCore.Entities.OrderAggregate.OrderItem")
+ .WithOne("ItemOrdered")
+ .HasForeignKey("Microsoft.eShopWeb.ApplicationCore.Entities.OrderAggregate.CatalogItemOrdered", "OrderItemId")
+ .OnDelete(DeleteBehavior.Cascade);
+ });
+ });
+#pragma warning restore 612, 618
+ }
+ }
+}
diff --git a/src/Infrastructure/Data/Migrations/20190911011026_UpdateCatalogModels.cs b/src/Infrastructure/Data/Migrations/20190911011026_UpdateCatalogModels.cs
new file mode 100644
index 0000000..6b70115
--- /dev/null
+++ b/src/Infrastructure/Data/Migrations/20190911011026_UpdateCatalogModels.cs
@@ -0,0 +1,128 @@
+using Microsoft.EntityFrameworkCore.Migrations;
+
+namespace Microsoft.eShopWeb.Infrastructure.Data.Migrations
+{
+ public partial class UpdateCatalogModels : Migration
+ {
+ protected override void Up(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.DropForeignKey(
+ name: "FK_Catalog_CatalogBrands_CatalogBrandId",
+ table: "Catalog");
+
+ migrationBuilder.DropForeignKey(
+ name: "FK_Catalog_CatalogTypes_CatalogTypeId",
+ table: "Catalog");
+
+ migrationBuilder.DropPrimaryKey(
+ name: "PK_CatalogTypes",
+ table: "CatalogTypes");
+
+ migrationBuilder.DropPrimaryKey(
+ name: "PK_CatalogBrands",
+ table: "CatalogBrands");
+
+ migrationBuilder.RenameTable(
+ name: "CatalogTypes",
+ newName: "CatalogType");
+
+ migrationBuilder.RenameTable(
+ name: "CatalogBrands",
+ newName: "CatalogBrand");
+
+ migrationBuilder.AlterColumn(
+ name: "BuyerId",
+ table: "Baskets",
+ nullable: true,
+ oldClrType: typeof(string),
+ oldMaxLength: 20);
+
+ migrationBuilder.AddPrimaryKey(
+ name: "PK_CatalogType",
+ table: "CatalogType",
+ column: "Id");
+
+ migrationBuilder.AddPrimaryKey(
+ name: "PK_CatalogBrand",
+ table: "CatalogBrand",
+ column: "Id");
+
+ migrationBuilder.AddForeignKey(
+ name: "FK_Catalog_CatalogBrand_CatalogBrandId",
+ table: "Catalog",
+ column: "CatalogBrandId",
+ principalTable: "CatalogBrand",
+ principalColumn: "Id",
+ onDelete: ReferentialAction.Cascade);
+
+ migrationBuilder.AddForeignKey(
+ name: "FK_Catalog_CatalogType_CatalogTypeId",
+ table: "Catalog",
+ column: "CatalogTypeId",
+ principalTable: "CatalogType",
+ principalColumn: "Id",
+ onDelete: ReferentialAction.Cascade);
+ }
+
+ protected override void Down(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.DropForeignKey(
+ name: "FK_Catalog_CatalogBrand_CatalogBrandId",
+ table: "Catalog");
+
+ migrationBuilder.DropForeignKey(
+ name: "FK_Catalog_CatalogType_CatalogTypeId",
+ table: "Catalog");
+
+ migrationBuilder.DropPrimaryKey(
+ name: "PK_CatalogType",
+ table: "CatalogType");
+
+ migrationBuilder.DropPrimaryKey(
+ name: "PK_CatalogBrand",
+ table: "CatalogBrand");
+
+ migrationBuilder.RenameTable(
+ name: "CatalogType",
+ newName: "CatalogTypes");
+
+ migrationBuilder.RenameTable(
+ name: "CatalogBrand",
+ newName: "CatalogBrands");
+
+ migrationBuilder.AlterColumn(
+ name: "BuyerId",
+ table: "Baskets",
+ maxLength: 20,
+ nullable: false,
+ oldClrType: typeof(string),
+ oldNullable: true);
+
+ migrationBuilder.AddPrimaryKey(
+ name: "PK_CatalogTypes",
+ table: "CatalogTypes",
+ column: "Id");
+
+ migrationBuilder.AddPrimaryKey(
+ name: "PK_CatalogBrands",
+ table: "CatalogBrands",
+ column: "Id");
+
+ migrationBuilder.AddForeignKey(
+ name: "FK_Catalog_CatalogBrands_CatalogBrandId",
+ table: "Catalog",
+ column: "CatalogBrandId",
+ principalTable: "CatalogBrands",
+ principalColumn: "Id",
+ onDelete: ReferentialAction.Cascade);
+
+ migrationBuilder.AddForeignKey(
+ name: "FK_Catalog_CatalogTypes_CatalogTypeId",
+ table: "Catalog",
+ column: "CatalogTypeId",
+ principalTable: "CatalogTypes",
+ principalColumn: "Id",
+ onDelete: ReferentialAction.Cascade);
+ }
+ }
+}
diff --git a/src/Infrastructure/Data/Migrations/CatalogContextModelSnapshot.cs b/src/Infrastructure/Data/Migrations/CatalogContextModelSnapshot.cs
index 7171f46..8a678ff 100644
--- a/src/Infrastructure/Data/Migrations/CatalogContextModelSnapshot.cs
+++ b/src/Infrastructure/Data/Migrations/CatalogContextModelSnapshot.cs
@@ -28,9 +28,7 @@ namespace Microsoft.eShopWeb.Infrastructure.Data.Migrations
.ValueGeneratedOnAdd()
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
- b.Property("BuyerId")
- .IsRequired()
- .HasMaxLength(20);
+ b.Property("BuyerId");
b.HasKey("Id");
@@ -72,7 +70,7 @@ namespace Microsoft.eShopWeb.Infrastructure.Data.Migrations
b.HasKey("Id");
- b.ToTable("CatalogBrands");
+ b.ToTable("CatalogBrand");
});
modelBuilder.Entity("Microsoft.eShopWeb.ApplicationCore.Entities.CatalogItem", b =>
@@ -119,7 +117,7 @@ namespace Microsoft.eShopWeb.Infrastructure.Data.Migrations
b.HasKey("Id");
- b.ToTable("CatalogTypes");
+ b.ToTable("CatalogType");
});
modelBuilder.Entity("Microsoft.eShopWeb.ApplicationCore.Entities.OrderAggregate.Order", b =>