zoukankan      html  css  js  c++  java
  • 敏捷项目开源管理软件ScrumBasic(2)- 多项目支持

    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关联到Story

    public ICollection<UserStory> Stories { get; set; }
    

    3.添加projectcontroller

    遇到个bug:

     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) 
    

    这是由于系统生成的代码不能识别外键字段长度导致。

    fix it

                migrationBuilder.AddColumn<string>(
                    name: "ProjectID",
                    table: "UserStories",
                    maxLength:32,
                    nullable: true);
    

    启动。一切正常

     4. 下面来修改 Create New

    删除 创建时间和更新时间,改由服务器赋值。

            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删除 createtime

    5.menu加入project

    6.加入ViewStrories Action

    <a asp-action="ViewStories" asp-route-id="@item.ID">View Stories</a> 
    

    7.修改StoryController加入解析id  

    完成。 

  • 相关阅读:
    linux下查找文件并按时间顺序排序的方法
    动态口令(OTP)认证技术概览
    [转]关于OpenSSL支持USBKEY证书的尝试
    关于CSP通过CpSetKeyParam存入证书相关问题
    Windows AntiDebug Reference
    cryptapi制作证书
    [转]国密SM3杂凑算法与实现
    [转]国密SM2非对称算法与实现
    [转]国密SM4对称算法实现说明(原SMS4无线局域网算法标准)
    证书的申请过程(usbkey)
  • 原文地址:https://www.cnblogs.com/chenfulai/p/5818090.html
Copyright © 2011-2022 走看看