Add column in table with ASP.NET identity

Suppose you want to add a new column named "FirstName":

Step 1: Models/IdentityModels.cs

Add the following code to the "ApplicationUser" class:

public string FirstName { get; set; }

Step 2: Models/AccountViewModels.cs

Add the following code to the "RegisterViewModel" class:

public string FirstName { get; set; }

Step 3: Views/Register.cshtml

Add FirstName input textbox to the view:

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

Step 4 :

Go to Tools > NuGet Manager > Package Manager Console

Step A : Type “Enable-Migrations” and press enter
Step B : Type “ Add-Migration "FirstName" ” and press enter
Step C : Type “Update-Database” and press enter
i.e

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

Step 5: Controllers/AccountController.cs

Go to Register Action and add "FirstName = model.FirstName" to the ApplicationUser i.e

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

I have found it! @James suggested me an article that works.

Steps:

  1. Type in the console manager this code:

    Enable-Migrations
    

    Source: blogs.msdn.com

  2. In the class ApplicationUser add the property you want.

    public DateTime? Birthdate { get; set; }
    
  3. in the console manager type this code:

    Add-Migration "Birthdate"
    
  4. After it update the database whit this code:

    Update-Database
    

Result: a new column is added to the database whit name "Birthdate" and type datetime that can be null.