diff --git a/ComputerStoreDatabaseImplement/Migrations/20230519152102_RelationFixesV8.Designer.cs b/ComputerStoreDatabaseImplement/Migrations/20230519152102_RelationFixesV8.Designer.cs
new file mode 100644
index 0000000..5f56b26
--- /dev/null
+++ b/ComputerStoreDatabaseImplement/Migrations/20230519152102_RelationFixesV8.Designer.cs
@@ -0,0 +1,486 @@
+//
+using System;
+using ComputerStoreDatabaseImplement;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Metadata;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+
+#nullable disable
+
+namespace ComputerStoreDatabaseImplement.Migrations
+{
+ [DbContext(typeof(ComputerStoreDatabase))]
+ [Migration("20230519152102_RelationFixesV8")]
+ partial class RelationFixesV8
+ {
+ ///
+ protected override void BuildTargetModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder
+ .HasAnnotation("ProductVersion", "7.0.5")
+ .HasAnnotation("Relational:MaxIdentifierLength", 128);
+
+ SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);
+
+ modelBuilder.Entity("ComputerStoreDatabaseImplement.Models.Component", b =>
+ {
+ b.Property("ID")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID"));
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Price")
+ .HasColumnType("float");
+
+ b.HasKey("ID");
+
+ b.ToTable("Components");
+ });
+
+ modelBuilder.Entity("ComputerStoreDatabaseImplement.Models.Consignment", b =>
+ {
+ b.Property("ID")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID"));
+
+ b.Property("OrderID")
+ .HasColumnType("int");
+
+ b.Property("Price")
+ .HasColumnType("float");
+
+ b.HasKey("ID");
+
+ b.HasIndex("OrderID");
+
+ b.ToTable("Consignments");
+ });
+
+ modelBuilder.Entity("ComputerStoreDatabaseImplement.Models.ConsignmentProduct", b =>
+ {
+ b.Property("ID")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID"));
+
+ b.Property("ConsignmentID")
+ .HasColumnType("int");
+
+ b.Property("Count")
+ .HasColumnType("int");
+
+ b.Property("ProductID")
+ .HasColumnType("int");
+
+ b.HasKey("ID");
+
+ b.HasIndex("ConsignmentID");
+
+ b.HasIndex("ProductID");
+
+ b.ToTable("ConsignmentProducts");
+ });
+
+ modelBuilder.Entity("ComputerStoreDatabaseImplement.Models.Employee", b =>
+ {
+ b.Property("ID")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID"));
+
+ b.Property("FirstName")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("LastName")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("MiddleName")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Password")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Username")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.HasKey("ID");
+
+ b.ToTable("Employees");
+ });
+
+ modelBuilder.Entity("ComputerStoreDatabaseImplement.Models.Order", b =>
+ {
+ b.Property("ID")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID"));
+
+ b.Property("DateCreate")
+ .HasColumnType("datetime2");
+
+ b.Property("DateImplement")
+ .HasColumnType("datetime2");
+
+ b.Property("Price")
+ .HasColumnType("float");
+
+ b.Property("SellerID")
+ .HasColumnType("int");
+
+ b.Property("Status")
+ .HasColumnType("int");
+
+ b.HasKey("ID");
+
+ b.HasIndex("SellerID");
+
+ b.ToTable("Orders");
+ });
+
+ modelBuilder.Entity("ComputerStoreDatabaseImplement.Models.PC", b =>
+ {
+ b.Property("ID")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID"));
+
+ b.Property("EmployeeID")
+ .HasColumnType("int");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Price")
+ .HasColumnType("float");
+
+ b.Property("RequestID")
+ .HasColumnType("int");
+
+ b.HasKey("ID");
+
+ b.HasIndex("EmployeeID");
+
+ b.HasIndex("RequestID");
+
+ b.ToTable("PCS");
+ });
+
+ modelBuilder.Entity("ComputerStoreDatabaseImplement.Models.Product", b =>
+ {
+ b.Property("ID")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID"));
+
+ b.Property("EmployeeID")
+ .HasColumnType("int");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Price")
+ .HasColumnType("float");
+
+ b.HasKey("ID");
+
+ b.HasIndex("EmployeeID");
+
+ b.ToTable("Products");
+ });
+
+ modelBuilder.Entity("ComputerStoreDatabaseImplement.Models.ProductComponent", b =>
+ {
+ b.Property("ID")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID"));
+
+ b.Property("ComponentID")
+ .HasColumnType("int");
+
+ b.Property("Count")
+ .HasColumnType("int");
+
+ b.Property("ProductID")
+ .HasColumnType("int");
+
+ b.HasKey("ID");
+
+ b.HasIndex("ComponentID");
+
+ b.HasIndex("ProductID");
+
+ b.ToTable("ProductComponents");
+ });
+
+ modelBuilder.Entity("ComputerStoreDatabaseImplement.Models.Request", b =>
+ {
+ b.Property("ID")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID"));
+
+ b.Property("OrderID")
+ .HasColumnType("int");
+
+ b.Property("PCID")
+ .HasColumnType("int");
+
+ b.Property("Price")
+ .HasColumnType("float");
+
+ b.HasKey("ID");
+
+ b.HasIndex("OrderID");
+
+ b.ToTable("Requests");
+ });
+
+ modelBuilder.Entity("ComputerStoreDatabaseImplement.Models.RequestComponent", b =>
+ {
+ b.Property("ID")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID"));
+
+ b.Property("ComponentID")
+ .HasColumnType("int");
+
+ b.Property("Count")
+ .HasColumnType("int");
+
+ b.Property("PCID")
+ .HasColumnType("int");
+
+ b.Property("RequestID")
+ .HasColumnType("int");
+
+ b.HasKey("ID");
+
+ b.HasIndex("ComponentID");
+
+ b.HasIndex("RequestID");
+
+ b.ToTable("RequestComponents");
+ });
+
+ modelBuilder.Entity("ComputerStoreDatabaseImplement.Models.Seller", b =>
+ {
+ b.Property("ID")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID"));
+
+ b.Property("FirstName")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("LastName")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("MiddleName")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Password")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Username")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.HasKey("ID");
+
+ b.ToTable("Sellers");
+ });
+
+ modelBuilder.Entity("ComputerStoreDatabaseImplement.Models.Consignment", b =>
+ {
+ b.HasOne("ComputerStoreDatabaseImplement.Models.Order", "Order")
+ .WithMany("_consignments")
+ .HasForeignKey("OrderID")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Order");
+ });
+
+ modelBuilder.Entity("ComputerStoreDatabaseImplement.Models.ConsignmentProduct", b =>
+ {
+ b.HasOne("ComputerStoreDatabaseImplement.Models.Consignment", "Consignment")
+ .WithMany("Products")
+ .HasForeignKey("ConsignmentID")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("ComputerStoreDatabaseImplement.Models.Product", "Product")
+ .WithMany("Consignments")
+ .HasForeignKey("ProductID")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Consignment");
+
+ b.Navigation("Product");
+ });
+
+ modelBuilder.Entity("ComputerStoreDatabaseImplement.Models.Order", b =>
+ {
+ b.HasOne("ComputerStoreDatabaseImplement.Models.Seller", "Seller")
+ .WithMany("Orders")
+ .HasForeignKey("SellerID")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Seller");
+ });
+
+ modelBuilder.Entity("ComputerStoreDatabaseImplement.Models.PC", b =>
+ {
+ b.HasOne("ComputerStoreDatabaseImplement.Models.Employee", "Employee")
+ .WithMany("PCs")
+ .HasForeignKey("EmployeeID")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("ComputerStoreDatabaseImplement.Models.Request", "Request")
+ .WithMany("PersonalComputers")
+ .HasForeignKey("RequestID")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Employee");
+
+ b.Navigation("Request");
+ });
+
+ modelBuilder.Entity("ComputerStoreDatabaseImplement.Models.Product", b =>
+ {
+ b.HasOne("ComputerStoreDatabaseImplement.Models.Employee", "Employee")
+ .WithMany("Products")
+ .HasForeignKey("EmployeeID")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Employee");
+ });
+
+ modelBuilder.Entity("ComputerStoreDatabaseImplement.Models.ProductComponent", b =>
+ {
+ b.HasOne("ComputerStoreDatabaseImplement.Models.Component", "Component")
+ .WithMany("ConsignmentComponents")
+ .HasForeignKey("ComponentID")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("ComputerStoreDatabaseImplement.Models.Product", "Product")
+ .WithMany("Components")
+ .HasForeignKey("ProductID")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Component");
+
+ b.Navigation("Product");
+ });
+
+ modelBuilder.Entity("ComputerStoreDatabaseImplement.Models.Request", b =>
+ {
+ b.HasOne("ComputerStoreDatabaseImplement.Models.Order", "Order")
+ .WithMany("_requests")
+ .HasForeignKey("OrderID")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Order");
+ });
+
+ modelBuilder.Entity("ComputerStoreDatabaseImplement.Models.RequestComponent", b =>
+ {
+ b.HasOne("ComputerStoreDatabaseImplement.Models.Component", "Component")
+ .WithMany("RequestComponents")
+ .HasForeignKey("ComponentID")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("ComputerStoreDatabaseImplement.Models.Request", "Request")
+ .WithMany("PCs")
+ .HasForeignKey("RequestID")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Component");
+
+ b.Navigation("Request");
+ });
+
+ modelBuilder.Entity("ComputerStoreDatabaseImplement.Models.Component", b =>
+ {
+ b.Navigation("ConsignmentComponents");
+
+ b.Navigation("RequestComponents");
+ });
+
+ modelBuilder.Entity("ComputerStoreDatabaseImplement.Models.Consignment", b =>
+ {
+ b.Navigation("Products");
+ });
+
+ modelBuilder.Entity("ComputerStoreDatabaseImplement.Models.Employee", b =>
+ {
+ b.Navigation("PCs");
+
+ b.Navigation("Products");
+ });
+
+ modelBuilder.Entity("ComputerStoreDatabaseImplement.Models.Order", b =>
+ {
+ b.Navigation("_consignments");
+
+ b.Navigation("_requests");
+ });
+
+ modelBuilder.Entity("ComputerStoreDatabaseImplement.Models.Product", b =>
+ {
+ b.Navigation("Components");
+
+ b.Navigation("Consignments");
+ });
+
+ modelBuilder.Entity("ComputerStoreDatabaseImplement.Models.Request", b =>
+ {
+ b.Navigation("PCs");
+
+ b.Navigation("PersonalComputers");
+ });
+
+ modelBuilder.Entity("ComputerStoreDatabaseImplement.Models.Seller", b =>
+ {
+ b.Navigation("Orders");
+ });
+#pragma warning restore 612, 618
+ }
+ }
+}
diff --git a/ComputerStoreDatabaseImplement/Migrations/20230519152102_RelationFixesV8.cs b/ComputerStoreDatabaseImplement/Migrations/20230519152102_RelationFixesV8.cs
new file mode 100644
index 0000000..9adbaa3
--- /dev/null
+++ b/ComputerStoreDatabaseImplement/Migrations/20230519152102_RelationFixesV8.cs
@@ -0,0 +1,48 @@
+using Microsoft.EntityFrameworkCore.Migrations;
+
+#nullable disable
+
+namespace ComputerStoreDatabaseImplement.Migrations
+{
+ ///
+ public partial class RelationFixesV8 : Migration
+ {
+ ///
+ protected override void Up(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.DropForeignKey(
+ name: "FK_Consignments_Products_ProductID",
+ table: "Consignments");
+
+ migrationBuilder.DropIndex(
+ name: "IX_Consignments_ProductID",
+ table: "Consignments");
+
+ migrationBuilder.DropColumn(
+ name: "ProductID",
+ table: "Consignments");
+ }
+
+ ///
+ protected override void Down(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.AddColumn(
+ name: "ProductID",
+ table: "Consignments",
+ type: "int",
+ nullable: true);
+
+ migrationBuilder.CreateIndex(
+ name: "IX_Consignments_ProductID",
+ table: "Consignments",
+ column: "ProductID");
+
+ migrationBuilder.AddForeignKey(
+ name: "FK_Consignments_Products_ProductID",
+ table: "Consignments",
+ column: "ProductID",
+ principalTable: "Products",
+ principalColumn: "ID");
+ }
+ }
+}
diff --git a/ComputerStoreDatabaseImplement/Migrations/ComputerStoreDatabaseModelSnapshot.cs b/ComputerStoreDatabaseImplement/Migrations/ComputerStoreDatabaseModelSnapshot.cs
index af60199..1717487 100644
--- a/ComputerStoreDatabaseImplement/Migrations/ComputerStoreDatabaseModelSnapshot.cs
+++ b/ComputerStoreDatabaseImplement/Migrations/ComputerStoreDatabaseModelSnapshot.cs
@@ -56,15 +56,10 @@ namespace ComputerStoreDatabaseImplement.Migrations
b.Property("Price")
.HasColumnType("float");
- b.Property("ProductID")
- .HasColumnType("int");
-
b.HasKey("ID");
b.HasIndex("OrderID");
- b.HasIndex("ProductID");
-
b.ToTable("Consignments");
});
@@ -326,10 +321,6 @@ namespace ComputerStoreDatabaseImplement.Migrations
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
- b.HasOne("ComputerStoreDatabaseImplement.Models.Product", null)
- .WithMany("Consignments")
- .HasForeignKey("ProductID");
-
b.Navigation("Order");
});
@@ -342,7 +333,7 @@ namespace ComputerStoreDatabaseImplement.Migrations
.IsRequired();
b.HasOne("ComputerStoreDatabaseImplement.Models.Product", "Product")
- .WithMany()
+ .WithMany("Consignments")
.HasForeignKey("ProductID")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
diff --git a/ComputerStoreDatabaseImplement/Models/Product.cs b/ComputerStoreDatabaseImplement/Models/Product.cs
index c09bcdb..70eb82e 100644
--- a/ComputerStoreDatabaseImplement/Models/Product.cs
+++ b/ComputerStoreDatabaseImplement/Models/Product.cs
@@ -46,7 +46,7 @@ namespace ComputerStoreDatabaseImplement.Models
public virtual List Components { get; set; } = new();
[ForeignKey("ProductID")]
- public virtual List Consignments { get; set; } = new();
+ public virtual List Consignments { get; set; } = new();
public virtual Employee Employee { get; set; }
public static Product Create(ComputerStoreDatabase context, ProductBindingModel model)