diff --git a/Yi.Framework/Yi.Framework.Model/Migrations/20211106110713_ec4.Designer.cs b/Yi.Framework/Yi.Framework.Model/Migrations/20211106110713_ec4.Designer.cs
new file mode 100644
index 00000000..9c033a51
--- /dev/null
+++ b/Yi.Framework/Yi.Framework.Model/Migrations/20211106110713_ec4.Designer.cs
@@ -0,0 +1,799 @@
+//
+using System;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+using Yi.Framework.Model;
+
+namespace Yi.Framework.Model.Migrations
+{
+ [DbContext(typeof(DataContext))]
+ [Migration("20211106110713_ec4")]
+ partial class ec4
+ {
+ protected override void BuildTargetModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder
+ .HasAnnotation("Relational:MaxIdentifierLength", 64)
+ .HasAnnotation("ProductVersion", "5.0.11");
+
+ modelBuilder.Entity("Yi.Framework.Model.Models.brand", b =>
+ {
+ b.Property("id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ b.Property("image")
+ .HasColumnType("longtext")
+ .HasComment("品牌图片");
+
+ b.Property("is_delete")
+ .HasColumnType("int");
+
+ b.Property("letter")
+ .HasColumnType("longtext")
+ .HasComment("品牌首字母");
+
+ b.Property("name")
+ .HasColumnType("longtext")
+ .HasComment("品牌名称");
+
+ b.HasKey("id");
+
+ b.ToTable("brand");
+ });
+
+ modelBuilder.Entity("Yi.Framework.Model.Models.category", b =>
+ {
+ b.Property("id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ b.Property("categoryid")
+ .HasColumnType("int");
+
+ b.Property("is_delete")
+ .HasColumnType("int");
+
+ b.Property("is_parent")
+ .HasColumnType("int")
+ .HasComment("是否父类别");
+
+ b.Property("name")
+ .HasColumnType("longtext")
+ .HasComment("类别名称");
+
+ b.Property("sort")
+ .HasColumnType("int")
+ .HasComment("排序");
+
+ b.HasKey("id");
+
+ b.HasIndex("categoryid");
+
+ b.ToTable("category");
+ });
+
+ modelBuilder.Entity("Yi.Framework.Model.Models.menu", b =>
+ {
+ b.Property("id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ b.Property("icon")
+ .HasColumnType("longtext");
+
+ b.Property("is_delete")
+ .HasColumnType("int");
+
+ b.Property("is_show")
+ .HasColumnType("int");
+
+ b.Property("is_top")
+ .HasColumnType("int");
+
+ b.Property("menu_name")
+ .HasColumnType("longtext");
+
+ b.Property("menuid")
+ .HasColumnType("int");
+
+ b.Property("mouldid")
+ .HasColumnType("int");
+
+ b.Property("router")
+ .HasColumnType("longtext");
+
+ b.Property("sort")
+ .HasColumnType("int");
+
+ b.HasKey("id");
+
+ b.HasIndex("menuid");
+
+ b.HasIndex("mouldid");
+
+ b.ToTable("menu");
+ });
+
+ modelBuilder.Entity("Yi.Framework.Model.Models.mould", b =>
+ {
+ b.Property("id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ b.Property("is_delete")
+ .HasColumnType("int");
+
+ b.Property("mould_name")
+ .HasColumnType("longtext");
+
+ b.Property("url")
+ .HasColumnType("longtext");
+
+ b.HasKey("id");
+
+ b.ToTable("mould");
+ });
+
+ modelBuilder.Entity("Yi.Framework.Model.Models.order", b =>
+ {
+ b.Property("id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ b.Property("actual_pay")
+ .HasColumnType("int")
+ .HasComment("实付金额。单位:分。如:20007,表示:200元7分");
+
+ b.Property("buyer_message")
+ .HasColumnType("longtext")
+ .HasComment("买家留言");
+
+ b.Property("buyer_nick")
+ .HasColumnType("longtext")
+ .HasComment("买家昵称");
+
+ b.Property("buyer_rate")
+ .HasColumnType("int")
+ .HasComment("买家是否已经评价,0未评价,1已评价");
+
+ b.Property("creat_time")
+ .HasColumnType("datetime(6)")
+ .HasComment("订单创建时间");
+
+ b.Property("invoice_type")
+ .HasColumnType("int")
+ .HasComment("发票类型:0无发票1普通发票,2电子发票,3增值税发票");
+
+ b.Property("is_delete")
+ .HasColumnType("int");
+
+ b.Property("payment_type")
+ .HasColumnType("int")
+ .HasComment("支付类型,1、在线支付,2、货到付款");
+
+ b.Property("post_fee")
+ .HasColumnType("int")
+ .HasComment("邮费。单位:分。如:20007,表示:200元7分");
+
+ b.Property("promotion_ids")
+ .HasColumnType("longtext")
+ .HasComment("promotion_ids");
+
+ b.Property("receiver")
+ .HasColumnType("longtext")
+ .HasComment("收货人");
+
+ b.Property("receiver_address")
+ .HasColumnType("longtext")
+ .HasComment("收获地址(街道、住址等详细地址)");
+
+ b.Property("receiver_city")
+ .HasColumnType("longtext")
+ .HasComment("收获地址(市)");
+
+ b.Property("receiver_district")
+ .HasColumnType("longtext")
+ .HasComment("收获地址(区/县)");
+
+ b.Property("receiver_mobile")
+ .HasColumnType("longtext")
+ .HasComment("收货人手机");
+
+ b.Property("receiver_state")
+ .HasColumnType("longtext")
+ .HasComment("收获地址(省)");
+
+ b.Property("receiver_zip")
+ .HasColumnType("longtext")
+ .HasComment("收货人邮编");
+
+ b.Property("shipping_code")
+ .HasColumnType("longtext")
+ .HasComment("物流单号");
+
+ b.Property("shipping_name")
+ .HasColumnType("longtext")
+ .HasComment("物流名称");
+
+ b.Property("skuid")
+ .HasColumnType("int");
+
+ b.Property("source_type")
+ .HasColumnType("int")
+ .HasComment("订单来源:1:app端,2:pc端,3:M端,4:微信端,5:手机qq端");
+
+ b.Property("total_pay")
+ .HasColumnType("int")
+ .HasComment("总金额,单位为分");
+
+ b.HasKey("id");
+
+ b.HasIndex("skuid");
+
+ b.ToTable("order");
+ });
+
+ modelBuilder.Entity("Yi.Framework.Model.Models.role", b =>
+ {
+ b.Property("id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ b.Property("introduce")
+ .HasColumnType("longtext");
+
+ b.Property("is_delete")
+ .HasColumnType("int");
+
+ b.Property("role_name")
+ .HasColumnType("longtext");
+
+ b.HasKey("id");
+
+ b.ToTable("role");
+ });
+
+ modelBuilder.Entity("Yi.Framework.Model.Models.sku", b =>
+ {
+ b.Property("id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ b.Property("crate_time")
+ .HasColumnType("datetime(6)")
+ .HasComment("创建时间");
+
+ b.Property("enable")
+ .HasColumnType("int")
+ .HasComment("是否有效,0无效,1有效");
+
+ b.Property("images")
+ .HasColumnType("longtext")
+ .HasComment("商品的图片,多个图片以‘,’分割");
+
+ b.Property("indexes")
+ .HasColumnType("longtext")
+ .HasComment("特有规格属性在spu属性模板中的对应下标组合");
+
+ b.Property("is_delete")
+ .HasColumnType("int");
+
+ b.Property("last_update_time")
+ .HasColumnType("datetime(6)")
+ .HasComment("最后更新时间");
+
+ b.Property("own_spec")
+ .HasColumnType("longtext")
+ .HasComment("sku的特有规格参数键值对,json格式,反序列化时请使用linkedHashMap,保证有序");
+
+ b.Property("price")
+ .HasColumnType("int")
+ .HasComment("销售价格,单位为分");
+
+ b.Property("spuid")
+ .HasColumnType("int");
+
+ b.Property("title")
+ .HasColumnType("longtext")
+ .HasComment("商品标题");
+
+ b.HasKey("id");
+
+ b.HasIndex("spuid");
+
+ b.ToTable("sku");
+ });
+
+ modelBuilder.Entity("Yi.Framework.Model.Models.spec_group", b =>
+ {
+ b.Property("id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ b.Property("categoryid")
+ .HasColumnType("int");
+
+ b.Property("is_delete")
+ .HasColumnType("int");
+
+ b.Property("name")
+ .HasColumnType("longtext")
+ .HasComment("规格组名称");
+
+ b.HasKey("id");
+
+ b.HasIndex("categoryid");
+
+ b.ToTable("spec_group");
+ });
+
+ modelBuilder.Entity("Yi.Framework.Model.Models.spec_param", b =>
+ {
+ b.Property("id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ b.Property("categoryid")
+ .HasColumnType("int");
+
+ b.Property("generic")
+ .HasColumnType("int")
+ .HasComment("是否是sku通用属性,true或false");
+
+ b.Property("is_delete")
+ .HasColumnType("int");
+
+ b.Property("name")
+ .HasColumnType("longtext")
+ .HasComment("参数名");
+
+ b.Property("numeric")
+ .HasColumnType("int")
+ .HasComment("是否是数字类型参数,true或false");
+
+ b.Property("searching")
+ .HasColumnType("int")
+ .HasComment("是否用于搜索过滤,true或false");
+
+ b.Property("segments")
+ .HasColumnType("longtext")
+ .HasComment("数值类型参数,如果需要搜索,则添加分段间隔值,如CPU频率间隔:0.5-1.0");
+
+ b.Property("spec_Groupid")
+ .HasColumnType("int");
+
+ b.Property("unit")
+ .HasColumnType("longtext")
+ .HasComment("数字类型参数的单位,非数字类型可以为空");
+
+ b.HasKey("id");
+
+ b.HasIndex("categoryid");
+
+ b.HasIndex("spec_Groupid");
+
+ b.ToTable("spec_param");
+ });
+
+ modelBuilder.Entity("Yi.Framework.Model.Models.spu", b =>
+ {
+ b.Property("id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ b.Property("brandid")
+ .HasColumnType("int");
+
+ b.Property("crate_time")
+ .HasColumnType("datetime(6)")
+ .HasComment("创建时间");
+
+ b.Property("is_delete")
+ .HasColumnType("int");
+
+ b.Property("last_update_time")
+ .HasColumnType("datetime(6)")
+ .HasComment("最后更新时间");
+
+ b.Property("saleable")
+ .HasColumnType("int")
+ .HasComment("是否上架");
+
+ b.Property("spu_Detailid")
+ .HasColumnType("int");
+
+ b.Property("sub_title")
+ .HasColumnType("longtext")
+ .HasComment("子标题");
+
+ b.Property("title")
+ .HasColumnType("longtext")
+ .HasComment("标题");
+
+ b.Property("valid")
+ .HasColumnType("int")
+ .HasComment("是否有效");
+
+ b.HasKey("id");
+
+ b.HasIndex("brandid");
+
+ b.HasIndex("spu_Detailid");
+
+ b.ToTable("spu");
+ });
+
+ modelBuilder.Entity("Yi.Framework.Model.Models.spu_detail", b =>
+ {
+ b.Property("id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ b.Property("after_service")
+ .HasColumnType("longtext")
+ .HasComment("售后服务");
+
+ b.Property("description")
+ .HasColumnType("longtext")
+ .HasComment("描述");
+
+ b.Property("generic_spec")
+ .HasColumnType("longtext")
+ .HasComment("通用规格参数数据");
+
+ b.Property("is_delete")
+ .HasColumnType("int");
+
+ b.Property("packing_list")
+ .HasColumnType("longtext")
+ .HasComment("包装清单");
+
+ b.Property("special_spec")
+ .HasColumnType("longtext")
+ .HasComment("特有规格参数及可选值信息,json格式");
+
+ b.HasKey("id");
+
+ b.ToTable("spu_detail");
+ });
+
+ modelBuilder.Entity("Yi.Framework.Model.Models.stock", b =>
+ {
+ b.Property("id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ b.Property("is_delete")
+ .HasColumnType("int");
+
+ b.Property("seckill_stock")
+ .HasColumnType("int")
+ .HasComment("可秒杀库存");
+
+ b.Property("seckill_total")
+ .HasColumnType("int")
+ .HasComment("秒杀总数量");
+
+ b.Property("skuid")
+ .HasColumnType("int");
+
+ b.Property("stock_count")
+ .HasColumnType("int")
+ .HasComment("库存数量");
+
+ b.HasKey("id");
+
+ b.HasIndex("skuid");
+
+ b.ToTable("stock");
+ });
+
+ modelBuilder.Entity("Yi.Framework.Model.Models.user", b =>
+ {
+ b.Property("id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ b.Property("address")
+ .HasColumnType("longtext");
+
+ b.Property("age")
+ .HasColumnType("int");
+
+ b.Property("email")
+ .HasColumnType("longtext");
+
+ b.Property("icon")
+ .HasColumnType("longtext");
+
+ b.Property("introduction")
+ .HasColumnType("longtext");
+
+ b.Property("ip")
+ .HasColumnType("longtext");
+
+ b.Property("is_delete")
+ .HasColumnType("int");
+
+ b.Property("nick")
+ .HasColumnType("longtext");
+
+ b.Property("password")
+ .HasColumnType("longtext");
+
+ b.Property("phone")
+ .HasColumnType("longtext");
+
+ b.Property("username")
+ .HasColumnType("longtext");
+
+ b.HasKey("id");
+
+ b.ToTable("user");
+ });
+
+ modelBuilder.Entity("Yi.Framework.Model.Models.visit", b =>
+ {
+ b.Property("id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ b.Property("is_delete")
+ .HasColumnType("int");
+
+ b.Property("num")
+ .HasColumnType("int");
+
+ b.Property("time")
+ .HasColumnType("datetime(6)");
+
+ b.HasKey("id");
+
+ b.ToTable("visit");
+ });
+
+ modelBuilder.Entity("brandcategory", b =>
+ {
+ b.Property("brandsid")
+ .HasColumnType("int");
+
+ b.Property("categoriesid")
+ .HasColumnType("int");
+
+ b.HasKey("brandsid", "categoriesid");
+
+ b.HasIndex("categoriesid");
+
+ b.ToTable("brandcategory");
+ });
+
+ modelBuilder.Entity("categoryspu", b =>
+ {
+ b.Property("categoriesid")
+ .HasColumnType("int");
+
+ b.Property("spusid")
+ .HasColumnType("int");
+
+ b.HasKey("categoriesid", "spusid");
+
+ b.HasIndex("spusid");
+
+ b.ToTable("categoryspu");
+ });
+
+ modelBuilder.Entity("menurole", b =>
+ {
+ b.Property("menusid")
+ .HasColumnType("int");
+
+ b.Property("rolesid")
+ .HasColumnType("int");
+
+ b.HasKey("menusid", "rolesid");
+
+ b.HasIndex("rolesid");
+
+ b.ToTable("menurole");
+ });
+
+ modelBuilder.Entity("roleuser", b =>
+ {
+ b.Property("rolesid")
+ .HasColumnType("int");
+
+ b.Property("usersid")
+ .HasColumnType("int");
+
+ b.HasKey("rolesid", "usersid");
+
+ b.HasIndex("usersid");
+
+ b.ToTable("roleuser");
+ });
+
+ modelBuilder.Entity("Yi.Framework.Model.Models.category", b =>
+ {
+ b.HasOne("Yi.Framework.Model.Models.category", null)
+ .WithMany("chidrens")
+ .HasForeignKey("categoryid");
+ });
+
+ modelBuilder.Entity("Yi.Framework.Model.Models.menu", b =>
+ {
+ b.HasOne("Yi.Framework.Model.Models.menu", null)
+ .WithMany("children")
+ .HasForeignKey("menuid");
+
+ b.HasOne("Yi.Framework.Model.Models.mould", "mould")
+ .WithMany()
+ .HasForeignKey("mouldid");
+
+ b.Navigation("mould");
+ });
+
+ modelBuilder.Entity("Yi.Framework.Model.Models.order", b =>
+ {
+ b.HasOne("Yi.Framework.Model.Models.sku", null)
+ .WithMany("orders")
+ .HasForeignKey("skuid");
+ });
+
+ modelBuilder.Entity("Yi.Framework.Model.Models.sku", b =>
+ {
+ b.HasOne("Yi.Framework.Model.Models.spu", "spu")
+ .WithMany("skus")
+ .HasForeignKey("spuid");
+
+ b.Navigation("spu");
+ });
+
+ modelBuilder.Entity("Yi.Framework.Model.Models.spec_group", b =>
+ {
+ b.HasOne("Yi.Framework.Model.Models.category", "category")
+ .WithMany("spec_Groups")
+ .HasForeignKey("categoryid");
+
+ b.Navigation("category");
+ });
+
+ modelBuilder.Entity("Yi.Framework.Model.Models.spec_param", b =>
+ {
+ b.HasOne("Yi.Framework.Model.Models.category", "category")
+ .WithMany("spec_Params")
+ .HasForeignKey("categoryid");
+
+ b.HasOne("Yi.Framework.Model.Models.spec_group", "spec_Group")
+ .WithMany("spec_Params")
+ .HasForeignKey("spec_Groupid");
+
+ b.Navigation("category");
+
+ b.Navigation("spec_Group");
+ });
+
+ modelBuilder.Entity("Yi.Framework.Model.Models.spu", b =>
+ {
+ b.HasOne("Yi.Framework.Model.Models.brand", "brand")
+ .WithMany("spus")
+ .HasForeignKey("brandid");
+
+ b.HasOne("Yi.Framework.Model.Models.spu_detail", "spu_Detail")
+ .WithMany()
+ .HasForeignKey("spu_Detailid");
+
+ b.Navigation("brand");
+
+ b.Navigation("spu_Detail");
+ });
+
+ modelBuilder.Entity("Yi.Framework.Model.Models.stock", b =>
+ {
+ b.HasOne("Yi.Framework.Model.Models.sku", "sku")
+ .WithMany()
+ .HasForeignKey("skuid");
+
+ b.Navigation("sku");
+ });
+
+ modelBuilder.Entity("brandcategory", b =>
+ {
+ b.HasOne("Yi.Framework.Model.Models.brand", null)
+ .WithMany()
+ .HasForeignKey("brandsid")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("Yi.Framework.Model.Models.category", null)
+ .WithMany()
+ .HasForeignKey("categoriesid")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+ });
+
+ modelBuilder.Entity("categoryspu", b =>
+ {
+ b.HasOne("Yi.Framework.Model.Models.category", null)
+ .WithMany()
+ .HasForeignKey("categoriesid")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("Yi.Framework.Model.Models.spu", null)
+ .WithMany()
+ .HasForeignKey("spusid")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+ });
+
+ modelBuilder.Entity("menurole", b =>
+ {
+ b.HasOne("Yi.Framework.Model.Models.menu", null)
+ .WithMany()
+ .HasForeignKey("menusid")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("Yi.Framework.Model.Models.role", null)
+ .WithMany()
+ .HasForeignKey("rolesid")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+ });
+
+ modelBuilder.Entity("roleuser", b =>
+ {
+ b.HasOne("Yi.Framework.Model.Models.role", null)
+ .WithMany()
+ .HasForeignKey("rolesid")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("Yi.Framework.Model.Models.user", null)
+ .WithMany()
+ .HasForeignKey("usersid")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+ });
+
+ modelBuilder.Entity("Yi.Framework.Model.Models.brand", b =>
+ {
+ b.Navigation("spus");
+ });
+
+ modelBuilder.Entity("Yi.Framework.Model.Models.category", b =>
+ {
+ b.Navigation("chidrens");
+
+ b.Navigation("spec_Groups");
+
+ b.Navigation("spec_Params");
+ });
+
+ modelBuilder.Entity("Yi.Framework.Model.Models.menu", b =>
+ {
+ b.Navigation("children");
+ });
+
+ modelBuilder.Entity("Yi.Framework.Model.Models.sku", b =>
+ {
+ b.Navigation("orders");
+ });
+
+ modelBuilder.Entity("Yi.Framework.Model.Models.spec_group", b =>
+ {
+ b.Navigation("spec_Params");
+ });
+
+ modelBuilder.Entity("Yi.Framework.Model.Models.spu", b =>
+ {
+ b.Navigation("skus");
+ });
+#pragma warning restore 612, 618
+ }
+ }
+}
diff --git a/Yi.Framework/Yi.Framework.Model/Migrations/20211106110713_ec4.cs b/Yi.Framework/Yi.Framework.Model/Migrations/20211106110713_ec4.cs
new file mode 100644
index 00000000..dc279917
--- /dev/null
+++ b/Yi.Framework/Yi.Framework.Model/Migrations/20211106110713_ec4.cs
@@ -0,0 +1,161 @@
+using Microsoft.EntityFrameworkCore.Migrations;
+
+namespace Yi.Framework.Model.Migrations
+{
+ public partial class ec4 : Migration
+ {
+ protected override void Up(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.DropForeignKey(
+ name: "FK_menu_role_roleid",
+ table: "menu");
+
+ migrationBuilder.DropForeignKey(
+ name: "FK_role_user_userid",
+ table: "role");
+
+ migrationBuilder.DropIndex(
+ name: "IX_role_userid",
+ table: "role");
+
+ migrationBuilder.DropIndex(
+ name: "IX_menu_roleid",
+ table: "menu");
+
+ migrationBuilder.DropColumn(
+ name: "userid",
+ table: "role");
+
+ migrationBuilder.DropColumn(
+ name: "roleid",
+ table: "menu");
+
+ migrationBuilder.AlterColumn(
+ name: "phone",
+ table: "user",
+ type: "longtext",
+ nullable: true,
+ oldClrType: typeof(int),
+ oldType: "int",
+ oldNullable: true)
+ .Annotation("MySql:CharSet", "utf8mb4");
+
+ migrationBuilder.CreateTable(
+ name: "menurole",
+ columns: table => new
+ {
+ menusid = table.Column(type: "int", nullable: false),
+ rolesid = table.Column(type: "int", nullable: false)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("PK_menurole", x => new { x.menusid, x.rolesid });
+ table.ForeignKey(
+ name: "FK_menurole_menu_menusid",
+ column: x => x.menusid,
+ principalTable: "menu",
+ principalColumn: "id",
+ onDelete: ReferentialAction.Cascade);
+ table.ForeignKey(
+ name: "FK_menurole_role_rolesid",
+ column: x => x.rolesid,
+ principalTable: "role",
+ principalColumn: "id",
+ onDelete: ReferentialAction.Cascade);
+ })
+ .Annotation("MySql:CharSet", "utf8mb4");
+
+ migrationBuilder.CreateTable(
+ name: "roleuser",
+ columns: table => new
+ {
+ rolesid = table.Column(type: "int", nullable: false),
+ usersid = table.Column(type: "int", nullable: false)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("PK_roleuser", x => new { x.rolesid, x.usersid });
+ table.ForeignKey(
+ name: "FK_roleuser_role_rolesid",
+ column: x => x.rolesid,
+ principalTable: "role",
+ principalColumn: "id",
+ onDelete: ReferentialAction.Cascade);
+ table.ForeignKey(
+ name: "FK_roleuser_user_usersid",
+ column: x => x.usersid,
+ principalTable: "user",
+ principalColumn: "id",
+ onDelete: ReferentialAction.Cascade);
+ })
+ .Annotation("MySql:CharSet", "utf8mb4");
+
+ migrationBuilder.CreateIndex(
+ name: "IX_menurole_rolesid",
+ table: "menurole",
+ column: "rolesid");
+
+ migrationBuilder.CreateIndex(
+ name: "IX_roleuser_usersid",
+ table: "roleuser",
+ column: "usersid");
+ }
+
+ protected override void Down(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.DropTable(
+ name: "menurole");
+
+ migrationBuilder.DropTable(
+ name: "roleuser");
+
+ migrationBuilder.AlterColumn(
+ name: "phone",
+ table: "user",
+ type: "int",
+ nullable: true,
+ oldClrType: typeof(string),
+ oldType: "longtext",
+ oldNullable: true)
+ .OldAnnotation("MySql:CharSet", "utf8mb4");
+
+ migrationBuilder.AddColumn(
+ name: "userid",
+ table: "role",
+ type: "int",
+ nullable: true);
+
+ migrationBuilder.AddColumn(
+ name: "roleid",
+ table: "menu",
+ type: "int",
+ nullable: true);
+
+ migrationBuilder.CreateIndex(
+ name: "IX_role_userid",
+ table: "role",
+ column: "userid");
+
+ migrationBuilder.CreateIndex(
+ name: "IX_menu_roleid",
+ table: "menu",
+ column: "roleid");
+
+ migrationBuilder.AddForeignKey(
+ name: "FK_menu_role_roleid",
+ table: "menu",
+ column: "roleid",
+ principalTable: "role",
+ principalColumn: "id",
+ onDelete: ReferentialAction.Restrict);
+
+ migrationBuilder.AddForeignKey(
+ name: "FK_role_user_userid",
+ table: "role",
+ column: "userid",
+ principalTable: "user",
+ principalColumn: "id",
+ onDelete: ReferentialAction.Restrict);
+ }
+ }
+}
diff --git a/Yi.Framework/Yi.Framework.Model/Migrations/DataContextModelSnapshot.cs b/Yi.Framework/Yi.Framework.Model/Migrations/DataContextModelSnapshot.cs
index 1e7b9bed..7fcf5023 100644
--- a/Yi.Framework/Yi.Framework.Model/Migrations/DataContextModelSnapshot.cs
+++ b/Yi.Framework/Yi.Framework.Model/Migrations/DataContextModelSnapshot.cs
@@ -101,9 +101,6 @@ namespace Yi.Framework.Model.Migrations
b.Property("mouldid")
.HasColumnType("int");
- b.Property("roleid")
- .HasColumnType("int");
-
b.Property("router")
.HasColumnType("longtext");
@@ -116,8 +113,6 @@ namespace Yi.Framework.Model.Migrations
b.HasIndex("mouldid");
- b.HasIndex("roleid");
-
b.ToTable("menu");
});
@@ -255,13 +250,8 @@ namespace Yi.Framework.Model.Migrations
b.Property("role_name")
.HasColumnType("longtext");
- b.Property("userid")
- .HasColumnType("int");
-
b.HasKey("id");
- b.HasIndex("userid");
-
b.ToTable("role");
});
@@ -533,8 +523,8 @@ namespace Yi.Framework.Model.Migrations
b.Property("password")
.HasColumnType("longtext");
- b.Property("phone")
- .HasColumnType("int");
+ b.Property("phone")
+ .HasColumnType("longtext");
b.Property("username")
.HasColumnType("longtext");
@@ -594,6 +584,36 @@ namespace Yi.Framework.Model.Migrations
b.ToTable("categoryspu");
});
+ modelBuilder.Entity("menurole", b =>
+ {
+ b.Property("menusid")
+ .HasColumnType("int");
+
+ b.Property("rolesid")
+ .HasColumnType("int");
+
+ b.HasKey("menusid", "rolesid");
+
+ b.HasIndex("rolesid");
+
+ b.ToTable("menurole");
+ });
+
+ modelBuilder.Entity("roleuser", b =>
+ {
+ b.Property("rolesid")
+ .HasColumnType("int");
+
+ b.Property("usersid")
+ .HasColumnType("int");
+
+ b.HasKey("rolesid", "usersid");
+
+ b.HasIndex("usersid");
+
+ b.ToTable("roleuser");
+ });
+
modelBuilder.Entity("Yi.Framework.Model.Models.category", b =>
{
b.HasOne("Yi.Framework.Model.Models.category", null)
@@ -611,10 +631,6 @@ namespace Yi.Framework.Model.Migrations
.WithMany()
.HasForeignKey("mouldid");
- b.HasOne("Yi.Framework.Model.Models.role", null)
- .WithMany("menus")
- .HasForeignKey("roleid");
-
b.Navigation("mould");
});
@@ -625,13 +641,6 @@ namespace Yi.Framework.Model.Migrations
.HasForeignKey("skuid");
});
- modelBuilder.Entity("Yi.Framework.Model.Models.role", b =>
- {
- b.HasOne("Yi.Framework.Model.Models.user", null)
- .WithMany("roles")
- .HasForeignKey("userid");
- });
-
modelBuilder.Entity("Yi.Framework.Model.Models.sku", b =>
{
b.HasOne("Yi.Framework.Model.Models.spu", "spu")
@@ -719,6 +728,36 @@ namespace Yi.Framework.Model.Migrations
.IsRequired();
});
+ modelBuilder.Entity("menurole", b =>
+ {
+ b.HasOne("Yi.Framework.Model.Models.menu", null)
+ .WithMany()
+ .HasForeignKey("menusid")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("Yi.Framework.Model.Models.role", null)
+ .WithMany()
+ .HasForeignKey("rolesid")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+ });
+
+ modelBuilder.Entity("roleuser", b =>
+ {
+ b.HasOne("Yi.Framework.Model.Models.role", null)
+ .WithMany()
+ .HasForeignKey("rolesid")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("Yi.Framework.Model.Models.user", null)
+ .WithMany()
+ .HasForeignKey("usersid")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+ });
+
modelBuilder.Entity("Yi.Framework.Model.Models.brand", b =>
{
b.Navigation("spus");
@@ -738,11 +777,6 @@ namespace Yi.Framework.Model.Migrations
b.Navigation("children");
});
- modelBuilder.Entity("Yi.Framework.Model.Models.role", b =>
- {
- b.Navigation("menus");
- });
-
modelBuilder.Entity("Yi.Framework.Model.Models.sku", b =>
{
b.Navigation("orders");
@@ -757,11 +791,6 @@ namespace Yi.Framework.Model.Migrations
{
b.Navigation("skus");
});
-
- modelBuilder.Entity("Yi.Framework.Model.Models.user", b =>
- {
- b.Navigation("roles");
- });
#pragma warning restore 612, 618
}
}