20250117130258_AddFaqs.cs 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. using System;
  2. using Microsoft.EntityFrameworkCore.Migrations;
  3. #nullable disable
  4. namespace bitforum.Migrations.DefaultDb
  5. {
  6. /// <inheritdoc />
  7. public partial class AddFaqs : Migration
  8. {
  9. /// <inheritdoc />
  10. protected override void Up(MigrationBuilder migrationBuilder)
  11. {
  12. migrationBuilder.CreateTable(
  13. name: "Document",
  14. columns: table => new
  15. {
  16. ID = table.Column<int>(type: "int", nullable: false)
  17. .Annotation("SqlServer:Identity", "1, 1"),
  18. IsDisplay = table.Column<bool>(type: "bit", nullable: false),
  19. Code = table.Column<string>(type: "nvarchar(30)", maxLength: 30, nullable: false),
  20. Subject = table.Column<string>(type: "nvarchar(120)", maxLength: 120, nullable: false),
  21. Content = table.Column<string>(type: "nvarchar(max)", nullable: true),
  22. Views = table.Column<int>(type: "int", nullable: false),
  23. UpdatedAt = table.Column<DateTime>(type: "datetime2", nullable: true),
  24. CreatedAt = table.Column<DateTime>(type: "datetime2", nullable: true)
  25. },
  26. constraints: table =>
  27. {
  28. table.PrimaryKey("PK_Document", x => x.ID);
  29. });
  30. migrationBuilder.CreateTable(
  31. name: "FaqCategory",
  32. columns: table => new
  33. {
  34. ID = table.Column<int>(type: "int", nullable: false)
  35. .Annotation("SqlServer:Identity", "1, 1"),
  36. Code = table.Column<string>(type: "nvarchar(30)", maxLength: 30, nullable: false),
  37. Subject = table.Column<string>(type: "nvarchar(255)", maxLength: 255, nullable: false),
  38. Content = table.Column<string>(type: "nvarchar(max)", nullable: true),
  39. Order = table.Column<int>(type: "int", nullable: false),
  40. IsActive = table.Column<bool>(type: "bit", nullable: false),
  41. UpdatedAt = table.Column<DateTime>(type: "datetime2", nullable: true),
  42. CreatedAt = table.Column<DateTime>(type: "datetime2", nullable: true)
  43. },
  44. constraints: table =>
  45. {
  46. table.PrimaryKey("PK_FaqCategory", x => x.ID);
  47. });
  48. migrationBuilder.CreateTable(
  49. name: "FaqItem",
  50. columns: table => new
  51. {
  52. ID = table.Column<int>(type: "int", nullable: false)
  53. .Annotation("SqlServer:Identity", "1, 1"),
  54. CategoryID = table.Column<int>(type: "int", nullable: false),
  55. Question = table.Column<string>(type: "nvarchar(255)", maxLength: 255, nullable: false),
  56. Answer = table.Column<string>(type: "nvarchar(max)", nullable: true),
  57. Order = table.Column<int>(type: "int", nullable: false),
  58. IsActive = table.Column<bool>(type: "bit", nullable: false),
  59. Views = table.Column<int>(type: "int", nullable: false),
  60. UpdatedAt = table.Column<DateTime>(type: "datetime2", nullable: true),
  61. CreatedAt = table.Column<DateTime>(type: "datetime2", nullable: true)
  62. },
  63. constraints: table =>
  64. {
  65. table.PrimaryKey("PK_FaqItem", x => x.ID);
  66. table.ForeignKey(
  67. name: "FK_FaqItem_FaqCategory_CategoryID",
  68. column: x => x.CategoryID,
  69. principalTable: "FaqCategory",
  70. principalColumn: "ID",
  71. onDelete: ReferentialAction.Cascade);
  72. });
  73. migrationBuilder.CreateIndex(
  74. name: "IX_Document_Code",
  75. table: "Document",
  76. column: "Code",
  77. unique: true);
  78. migrationBuilder.CreateIndex(
  79. name: "IX_FaqCategory_Code",
  80. table: "FaqCategory",
  81. column: "Code",
  82. unique: true);
  83. migrationBuilder.CreateIndex(
  84. name: "IX_FaqCategory_Order",
  85. table: "FaqCategory",
  86. column: "Order");
  87. migrationBuilder.CreateIndex(
  88. name: "IX_FaqItem_CategoryID",
  89. table: "FaqItem",
  90. column: "CategoryID");
  91. migrationBuilder.CreateIndex(
  92. name: "IX_FaqItem_IsActive",
  93. table: "FaqItem",
  94. column: "IsActive");
  95. migrationBuilder.CreateIndex(
  96. name: "IX_FaqItem_Order",
  97. table: "FaqItem",
  98. column: "Order");
  99. }
  100. /// <inheritdoc />
  101. protected override void Down(MigrationBuilder migrationBuilder)
  102. {
  103. migrationBuilder.DropTable(
  104. name: "Document");
  105. migrationBuilder.DropTable(
  106. name: "FaqItem");
  107. migrationBuilder.DropTable(
  108. name: "FaqCategory");
  109. }
  110. }
  111. }