Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2018
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 16.07 KB | None | 0 0
  1. using Microsoft.EntityFrameworkCore.Metadata;
  2. using Microsoft.EntityFrameworkCore.Migrations;
  3. using System;
  4. using System.Collections.Generic;
  5.  
  6. namespace DAL.Database.Migrations
  7. {
  8. public partial class PlayerModel : Migration
  9. {
  10. protected override void Up(MigrationBuilder migrationBuilder)
  11. {
  12. migrationBuilder.AddColumn<int>(
  13. name: "PlayerID",
  14. table: "Users",
  15. nullable: false,
  16. defaultValue: 0);
  17.  
  18. migrationBuilder.CreateTable(
  19. name: "Enemy",
  20. columns: table => new
  21. {
  22. ID = table.Column<int>(nullable: false)
  23. .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn),
  24. CurrentHP = table.Column<int>(nullable: false),
  25. MaxDamage = table.Column<int>(nullable: false),
  26. MaxHP = table.Column<int>(nullable: false),
  27. Name = table.Column<string>(nullable: true),
  28. RewardGold = table.Column<int>(nullable: false),
  29. RewardXP = table.Column<int>(nullable: false)
  30. },
  31. constraints: table =>
  32. {
  33. table.PrimaryKey("PK_Enemy", x => x.ID);
  34. });
  35.  
  36. migrationBuilder.CreateTable(
  37. name: "Item",
  38. columns: table => new
  39. {
  40. ID = table.Column<int>(nullable: false)
  41. .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn),
  42. Discriminator = table.Column<string>(nullable: false),
  43. Name = table.Column<string>(nullable: true),
  44. NamePlural = table.Column<string>(nullable: true),
  45. MaxDamage = table.Column<int>(nullable: true),
  46. MinDamage = table.Column<int>(nullable: true)
  47. },
  48. constraints: table =>
  49. {
  50. table.PrimaryKey("PK_Item", x => x.ID);
  51. });
  52.  
  53. migrationBuilder.CreateTable(
  54. name: "LootItem",
  55. columns: table => new
  56. {
  57. ID = table.Column<int>(nullable: false)
  58. .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn),
  59. DetailsID = table.Column<int>(nullable: true),
  60. DropPercentage = table.Column<int>(nullable: false),
  61. EnemyID = table.Column<int>(nullable: true),
  62. IsDefaultItem = table.Column<bool>(nullable: false)
  63. },
  64. constraints: table =>
  65. {
  66. table.PrimaryKey("PK_LootItem", x => x.ID);
  67. table.ForeignKey(
  68. name: "FK_LootItem_Item_DetailsID",
  69. column: x => x.DetailsID,
  70. principalTable: "Item",
  71. principalColumn: "ID",
  72. onDelete: ReferentialAction.Restrict);
  73. table.ForeignKey(
  74. name: "FK_LootItem_Enemy_EnemyID",
  75. column: x => x.EnemyID,
  76. principalTable: "Enemy",
  77. principalColumn: "ID",
  78. onDelete: ReferentialAction.Restrict);
  79. });
  80.  
  81. migrationBuilder.CreateTable(
  82. name: "Quest",
  83. columns: table => new
  84. {
  85. ID = table.Column<int>(nullable: false)
  86. .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn),
  87. Description = table.Column<string>(nullable: true),
  88. Name = table.Column<string>(nullable: true),
  89. RewardGold = table.Column<int>(nullable: false),
  90. RewardItemID = table.Column<int>(nullable: true),
  91. RewardXP = table.Column<int>(nullable: false)
  92. },
  93. constraints: table =>
  94. {
  95. table.PrimaryKey("PK_Quest", x => x.ID);
  96. table.ForeignKey(
  97. name: "FK_Quest_Item_RewardItemID",
  98. column: x => x.RewardItemID,
  99. principalTable: "Item",
  100. principalColumn: "ID",
  101. onDelete: ReferentialAction.Restrict);
  102. });
  103.  
  104. migrationBuilder.CreateTable(
  105. name: "Location",
  106. columns: table => new
  107. {
  108. ID = table.Column<int>(nullable: false)
  109. .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn),
  110. Description = table.Column<string>(nullable: true),
  111. EnemyLivingHereID = table.Column<int>(nullable: true),
  112. ItemRequiredToEnterID = table.Column<int>(nullable: true),
  113. Map = table.Column<string>(nullable: true),
  114. Name = table.Column<string>(nullable: true),
  115. QuestAvailableHereID = table.Column<int>(nullable: true)
  116. },
  117. constraints: table =>
  118. {
  119. table.PrimaryKey("PK_Location", x => x.ID);
  120. table.ForeignKey(
  121. name: "FK_Location_Enemy_EnemyLivingHereID",
  122. column: x => x.EnemyLivingHereID,
  123. principalTable: "Enemy",
  124. principalColumn: "ID",
  125. onDelete: ReferentialAction.Restrict);
  126. table.ForeignKey(
  127. name: "FK_Location_Item_ItemRequiredToEnterID",
  128. column: x => x.ItemRequiredToEnterID,
  129. principalTable: "Item",
  130. principalColumn: "ID",
  131. onDelete: ReferentialAction.Restrict);
  132. table.ForeignKey(
  133. name: "FK_Location_Quest_QuestAvailableHereID",
  134. column: x => x.QuestAvailableHereID,
  135. principalTable: "Quest",
  136. principalColumn: "ID",
  137. onDelete: ReferentialAction.Restrict);
  138. });
  139.  
  140. migrationBuilder.CreateTable(
  141. name: "QuestCompletionItem",
  142. columns: table => new
  143. {
  144. ID = table.Column<int>(nullable: false)
  145. .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn),
  146. ItemID = table.Column<int>(nullable: true),
  147. Quantity = table.Column<int>(nullable: false),
  148. QuestID = table.Column<int>(nullable: true)
  149. },
  150. constraints: table =>
  151. {
  152. table.PrimaryKey("PK_QuestCompletionItem", x => x.ID);
  153. table.ForeignKey(
  154. name: "FK_QuestCompletionItem_Item_ItemID",
  155. column: x => x.ItemID,
  156. principalTable: "Item",
  157. principalColumn: "ID",
  158. onDelete: ReferentialAction.Restrict);
  159. table.ForeignKey(
  160. name: "FK_QuestCompletionItem_Quest_QuestID",
  161. column: x => x.QuestID,
  162. principalTable: "Quest",
  163. principalColumn: "ID",
  164. onDelete: ReferentialAction.Restrict);
  165. });
  166.  
  167. migrationBuilder.CreateTable(
  168. name: "Players",
  169. columns: table => new
  170. {
  171. ID = table.Column<int>(nullable: false)
  172. .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn),
  173. CurrentHP = table.Column<int>(nullable: false),
  174. CurrentLocationID = table.Column<int>(nullable: true),
  175. CurrentWeaponID = table.Column<int>(nullable: true),
  176. Gold = table.Column<int>(nullable: false),
  177. MaxHP = table.Column<int>(nullable: false),
  178. Name = table.Column<string>(nullable: true),
  179. XP = table.Column<int>(nullable: false)
  180. },
  181. constraints: table =>
  182. {
  183. table.PrimaryKey("PK_Players", x => x.ID);
  184. table.ForeignKey(
  185. name: "FK_Players_Location_CurrentLocationID",
  186. column: x => x.CurrentLocationID,
  187. principalTable: "Location",
  188. principalColumn: "ID",
  189. onDelete: ReferentialAction.Restrict);
  190. table.ForeignKey(
  191. name: "FK_Players_Item_CurrentWeaponID",
  192. column: x => x.CurrentWeaponID,
  193. principalTable: "Item",
  194. principalColumn: "ID",
  195. onDelete: ReferentialAction.Restrict);
  196. });
  197.  
  198. migrationBuilder.CreateTable(
  199. name: "InventoryItem",
  200. columns: table => new
  201. {
  202. ID = table.Column<int>(nullable: false)
  203. .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn),
  204. ItemID = table.Column<int>(nullable: true),
  205. PlayerID = table.Column<int>(nullable: true),
  206. Quantity = table.Column<int>(nullable: false)
  207. },
  208. constraints: table =>
  209. {
  210. table.PrimaryKey("PK_InventoryItem", x => x.ID);
  211. table.ForeignKey(
  212. name: "FK_InventoryItem_Item_ItemID",
  213. column: x => x.ItemID,
  214. principalTable: "Item",
  215. principalColumn: "ID",
  216. onDelete: ReferentialAction.Restrict);
  217. table.ForeignKey(
  218. name: "FK_InventoryItem_Players_PlayerID",
  219. column: x => x.PlayerID,
  220. principalTable: "Players",
  221. principalColumn: "ID",
  222. onDelete: ReferentialAction.Restrict);
  223. });
  224.  
  225. migrationBuilder.CreateTable(
  226. name: "PlayerQuest",
  227. columns: table => new
  228. {
  229. ID = table.Column<int>(nullable: false)
  230. .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn),
  231. IsCompleted = table.Column<bool>(nullable: false),
  232. PlayerID = table.Column<int>(nullable: true),
  233. QuestID = table.Column<int>(nullable: true)
  234. },
  235. constraints: table =>
  236. {
  237. table.PrimaryKey("PK_PlayerQuest", x => x.ID);
  238. table.ForeignKey(
  239. name: "FK_PlayerQuest_Players_PlayerID",
  240. column: x => x.PlayerID,
  241. principalTable: "Players",
  242. principalColumn: "ID",
  243. onDelete: ReferentialAction.Restrict);
  244. table.ForeignKey(
  245. name: "FK_PlayerQuest_Quest_QuestID",
  246. column: x => x.QuestID,
  247. principalTable: "Quest",
  248. principalColumn: "ID",
  249. onDelete: ReferentialAction.Restrict);
  250. });
  251.  
  252. migrationBuilder.CreateIndex(
  253. name: "IX_Users_PlayerID",
  254. table: "Users",
  255. column: "PlayerID");
  256.  
  257. migrationBuilder.CreateIndex(
  258. name: "IX_InventoryItem_ItemID",
  259. table: "InventoryItem",
  260. column: "ItemID");
  261.  
  262. migrationBuilder.CreateIndex(
  263. name: "IX_InventoryItem_PlayerID",
  264. table: "InventoryItem",
  265. column: "PlayerID");
  266.  
  267. migrationBuilder.CreateIndex(
  268. name: "IX_Location_EnemyLivingHereID",
  269. table: "Location",
  270. column: "EnemyLivingHereID");
  271.  
  272. migrationBuilder.CreateIndex(
  273. name: "IX_Location_ItemRequiredToEnterID",
  274. table: "Location",
  275. column: "ItemRequiredToEnterID");
  276.  
  277. migrationBuilder.CreateIndex(
  278. name: "IX_Location_QuestAvailableHereID",
  279. table: "Location",
  280. column: "QuestAvailableHereID");
  281.  
  282. migrationBuilder.CreateIndex(
  283. name: "IX_LootItem_DetailsID",
  284. table: "LootItem",
  285. column: "DetailsID");
  286.  
  287. migrationBuilder.CreateIndex(
  288. name: "IX_LootItem_EnemyID",
  289. table: "LootItem",
  290. column: "EnemyID");
  291.  
  292. migrationBuilder.CreateIndex(
  293. name: "IX_PlayerQuest_PlayerID",
  294. table: "PlayerQuest",
  295. column: "PlayerID");
  296.  
  297. migrationBuilder.CreateIndex(
  298. name: "IX_PlayerQuest_QuestID",
  299. table: "PlayerQuest",
  300. column: "QuestID");
  301.  
  302. migrationBuilder.CreateIndex(
  303. name: "IX_Players_CurrentLocationID",
  304. table: "Players",
  305. column: "CurrentLocationID");
  306.  
  307. migrationBuilder.CreateIndex(
  308. name: "IX_Players_CurrentWeaponID",
  309. table: "Players",
  310. column: "CurrentWeaponID");
  311.  
  312. migrationBuilder.CreateIndex(
  313. name: "IX_Quest_RewardItemID",
  314. table: "Quest",
  315. column: "RewardItemID");
  316.  
  317. migrationBuilder.CreateIndex(
  318. name: "IX_QuestCompletionItem_ItemID",
  319. table: "QuestCompletionItem",
  320. column: "ItemID");
  321.  
  322. migrationBuilder.CreateIndex(
  323. name: "IX_QuestCompletionItem_QuestID",
  324. table: "QuestCompletionItem",
  325. column: "QuestID");
  326.  
  327. migrationBuilder.AddForeignKey(
  328. name: "FK_Users_Players_PlayerID",
  329. table: "Users",
  330. column: "PlayerID",
  331. principalTable: "Players",
  332. principalColumn: "ID",
  333. onDelete: ReferentialAction.Cascade);
  334. }
  335.  
  336. protected override void Down(MigrationBuilder migrationBuilder)
  337. {
  338. migrationBuilder.DropForeignKey(
  339. name: "FK_Users_Players_PlayerID",
  340. table: "Users");
  341.  
  342. migrationBuilder.DropTable(
  343. name: "InventoryItem");
  344.  
  345. migrationBuilder.DropTable(
  346. name: "LootItem");
  347.  
  348. migrationBuilder.DropTable(
  349. name: "PlayerQuest");
  350.  
  351. migrationBuilder.DropTable(
  352. name: "QuestCompletionItem");
  353.  
  354. migrationBuilder.DropTable(
  355. name: "Players");
  356.  
  357. migrationBuilder.DropTable(
  358. name: "Location");
  359.  
  360. migrationBuilder.DropTable(
  361. name: "Enemy");
  362.  
  363. migrationBuilder.DropTable(
  364. name: "Quest");
  365.  
  366. migrationBuilder.DropTable(
  367. name: "Item");
  368.  
  369. migrationBuilder.DropIndex(
  370. name: "IX_Users_PlayerID",
  371. table: "Users");
  372.  
  373. migrationBuilder.DropColumn(
  374. name: "PlayerID",
  375. table: "Users");
  376. }
  377. }
  378. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement