使用ASP.NET标识在表中添加列

H. *_*lyn 11 sql-server asp.net ado.net asp.net-identity

我在身份框架中创建了一个项目,支持ASP.NET MVC.他创建了一个新表AspNetUsers,但我想在出生日,个人资料图片等表格中添加列...我该怎么做?

我可以在SQL Server Management Studio中运行以下查询吗?

ALTER TABLE AspNetUsers ADD ProfilePicture NVARCHAR(100);
ALTER TABLE AspNetUsers ADD BirthDay DATE;
Run Code Online (Sandbox Code Playgroud)

还是更复杂?我不能使用身份框架,所以我必须使用ADO.NET和.NET框架4.

H. *_*lyn 18

我找到了!@James向我推荐了一篇有效的文章.

脚步:

  1. 在控制台管理器中输入以下代码:

    Enable-Migrations
    
    Run Code Online (Sandbox Code Playgroud)

    资料来源:blogs.msdn.com

  2. 在类中ApplicationUser添加所需的属性.

    public DateTime? Birthdate { get; set; }
    
    Run Code Online (Sandbox Code Playgroud)
  3. 在控制台管理器中输入以下代码:

    Add-Migration "Birthdate"
    
    Run Code Online (Sandbox Code Playgroud)
  4. 更新数据库后,此代码为:

    Update-Database
    
    Run Code Online (Sandbox Code Playgroud)

结果:新数据列添加到数据库名称"Birthdate",并且类型datetime可以为null.


Adr*_*rma 12

假设您要添加名为"FirstName"的新列:

第1步: Models/IdentityModels.cs

将以下代码添加到"ApplicationUser"类:

public string FirstName { get; set; }
Run Code Online (Sandbox Code Playgroud)

第2步: Models/AccountViewModels.cs

将以下代码添加到"RegisterViewModel"类:

public string FirstName { get; set; }
Run Code Online (Sandbox Code Playgroud)

第3步: Views/Register.cshtml

将FirstName输入文本框添加到视图:

<div class="form-group">
        @Html.LabelFor(m => m.FirstName, new { @class = "col-md-2 control-label" })
        <div class="col-md-10">
            @Html.TextBoxFor(m => m.FirstName, new { @class = "form-control" })
        </div>
</div>
Run Code Online (Sandbox Code Playgroud)

第4步 :

转到工具> NuGet管理器>包管理器控制台

步骤A:键入"启用 - 迁移"并按Enter键
步骤B:键入"添加 - 迁移"FirstName""并按Enter键
步骤C:键入"Update-Database"并按Enter键

PM> Enable-Migrations
PM> Add-Migration "FirstName"
PM> Update-Database
Run Code Online (Sandbox Code Playgroud)

第5步: Controllers/AccountController.cs

转到注册操作并将"FirstName = model.FirstName"添加到ApplicationUser,即

var user = new ApplicationUser { UserName = model.Email, Email = model.Email, FirstName = model.FirstName}
Run Code Online (Sandbox Code Playgroud)