1.加入Project對象模型服務器
public class Project { [Key] [MaxLength(32)] public string ID { get; set; } public string Name { get; set; } public int Order { get; set; } public ICollection<UserStory> Stories { get; set; } public ApplicationUser Creator { get; set; } public DateTime CreateTime { get; set; } public ApplicationUser Modifier { get; set; } public DateTime UpdateTime { get; set; } }
2.將Project關聯到Storyapp
public ICollection<UserStory> Stories { get; set; }
3.添加projectcontrollerasync
遇到個bug:ui
warning CS0169: The field 'UserStoryController.mystr' is never used System.Data.SqlClient.SqlException: Column 'Project.ID' is not the same length or scale as referencing column 'UserStories.ProjectID' in foreign key 'FK_UserStories_Project_ProjectID'. Columns participating in a foreign key relationship must be defined wit h the same length and scale. Could not create constraint or index. See previous errors. at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
這是因爲系統生成的代碼不能識別外鍵字段長度致使。3d
fix it對象
migrationBuilder.AddColumn<string>( name: "ProjectID", table: "UserStories", maxLength:32, nullable: true);
啓動。一切正常blog
4. 下面來修改 Create Newip
刪除 建立時間和更新時間,改由服務器賦值。ci
public async Task<IActionResult> Create(UserStoryViewModel userStoryViewModel) { if (ModelState.IsValid) { //mapping UserStory usNew = map.Map<UserStory>(userStoryViewModel); usNew.ID = Guid.NewGuid().ToString("N"); usNew.StatusCode = "Unstarted"; usNew.Creator = _userManager.FindByNameAsync(User.Identity.Name).Result; usNew.CreateTime = DateTime.Now; usNew.Order = _context.UserStories.Max(t => t.Order)+1; _context.UserStories.Add(usNew); await _context.SaveChangesAsync(); return RedirectToAction("Index"); } return View("OK"); }
details 和index刪除 createtimeget
5.menu加入project
6.加入ViewStrories Action
<a asp-action="ViewStories" asp-route-id="@item.ID">View Stories</a>
7.修改StoryController加入解析id
完成。