Saturday, June 18, 2016

How to use migration with Entity Framework Core

Entity framework core is  the lightweight, extensible and cross-platform version of Entity Framework. Before some time, Microsoft has Released a new version of Entity Framework RC2. I have written a couple of blog post about Entity framework code first migration earlier for Entity framework 6.0. So there was a couple of request coming for writing a blog post about Entity Framework Core RC2 migration. So I thought it will be a good idea to give an overview how database migration works in Entity Framework Core RC2. This post will cover a basic scenario where we are going to create the database with existing ASP.NET Identity migration and then we are going to create a new model and have that migration applied in the database.

How to use Entity Framework Migrations:

Let’s get started, To demonstrate entity framework core migrations, I am going to create a sample core web application like following.


Once we select core application it will appear the following dialog.


Now when you create a sample application. It will basically create a boilerplate code for the identity and as a part of that it is going to create entity framework migration files under Data –> Migrations folder.


Here you can find that sample code in GitHub repository given at the bottom.  Now we already identity migration code ready. So Let’s have those migrations applied with the following command from NuGet package manager console.


Now let’s add a new model “Employee” like following.
namespace CoreMigration.Models
    public class Employee
        public int EmployeeId { get; set; }
        public string FirstName { get; set; }
        public string LastName { get; set; }
As we have employee class, We need to add migration for that. I’m going to create a migration for employee class via the following command.

add-migration AddEmployee

It will create “AddEmployee” migration class in Data->Migrations folder.


And here is the code for the migration for the same.
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Metadata;

namespace CoreMigration.Data.Migrations
    public partial class AddEmployee : Migration
        protected override void Up(MigrationBuilder migrationBuilder)
                name: "Employees",
                columns: table => new
                    EmployeeId = table.Column<int>(nullable: false)
                        .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn),
                    FirstName = table.Column<string>(nullable: true),
                    LastName = table.Column<string>(nullable: true)
                constraints: table =>
                    table.PrimaryKey("PK_Employees", x => x.EmployeeId);

        protected override void Down(MigrationBuilder migrationBuilder)
                name: "Employees");

Now we have our migration class ready so I am going to run the update-database command as following.


Now let’s check the database again and You can see employee table is there.


That’s it. It’s very easy. Hope you like it. Stay tuned for more!!.

You can find complete source code of this application at following location on Github -


Post a Comment

Your feedback is very important to me. Please provide your feedback via putting comments.

Support this blog-Buy me a coffee

Buy me a coffeeBuy me a coffee
Search This Blog
Subscribe to my blog


My Mvp Profile
Follow us on facebook
Blog Archive
Total Pageviews