在 table 中添加具有 ASP.NET 标识的列

Add column in table with ASP.NET identity

我使用身份框架制作了一个 ASP.NET MVC 项目。它创建了一个新的 table AspNetUsers,但我想在其中添加列 table,例如生日、个人资料图片等...我该怎么做?

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

ALTER TABLE AspNetUsers ADD ProfilePicture NVARCHAR(100);
ALTER TABLE AspNetUsers ADD BirthDay DATE;

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

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

步骤:

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

    Enable-Migrations
    

    来源:blogs.msdn.com

  2. 在classApplicationUser中添加你想要的属性。

    public DateTime? Birthdate { get; set; }
    
  3. 在控制台管理器中键入此代码:

    Add-Migration "Birthdate"
    
  4. 使用此代码更新数据库后:

    Update-Database
    

结果: 数据库中添加了一个新列,名称为 "Birthdate",类型为 datetime,可以为空。

假设您要添加一个名为 "FirstName":

的新列

第一步: Models/IdentityModels.cs

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

public string FirstName { get; set; }

第 2 步: Models/AccountViewModels.cs

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

public string FirstName { get; set; }

步骤 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>

第 4 步:

转到“工具”>“NuGet 管理器”>“程序包管理器控制台”

步骤 A:键入“Enable-Migrations”并按回车键
步骤 B:键入“Add-Migration "FirstName"”并按回车键
步骤 C:键入“Update-Database”并按回车键

PM> Enable-Migrations
PM> Add-Migration "FirstName"
PM> Update-Database

第 5 步: Controllers/AccountController.cs

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

var user = new ApplicationUser { UserName = model.Email, Email = model.Email, FirstName = model.FirstName}