EntityFramework Core: Generate Migration Scripts in a Separate Project

visibility 119 access_time 2 years ago languageEnglish timeline Stats
timeline Stats
Page index 0.31

In entity-framework code-first solution, we usually generate migrations scripts in the default startup project. For instance, for ASP.NET Core applications, the scripts can be generated in Migrations folder of the web application project. This articles shows an approach to generate migration scripts in a separate project.


Assuming the following solution setup:


In solution folder sln, there are three projects: 

  • WebProject: ASP.NET Core web application project.
  • DataModels: all the entity framework models and application DbContext classes are defined here.
  • Migrations: all the migration scripts.

The task is to generate migration scripts in Migrations project folder. 


The following steps provide one solution to implement the above task.

  1. Open Command Prompt (Windows) or Terminal (Linux).
  2. Change current folder to sln:
    cd sln
  3. Add initial migration script:
    dotnet ef migrations add InitMigrations --startup-project WebProject

    The above command will generate initial migration scripts by default in WebProject. The startup project is set as WebProject

  4. Create Migrations project as a C# library project with all the necessary references to entity framework package and DataModels project.
  5. Move the generated scripts to project Migrations manually.
  6. Generate new migrations using the following command ongoing forward:
    dotnet ef migrations add MyNewMigration --startup-project WebProject --project Migrations


Using a Separate Migrations Project - EF Core | Microsoft Docs

copyright This page is subject to Site terms.

Please log in or register to comment.

account_circle Log in person_add Register

Log in with external accounts

More from Kontext
Read Embedded Assembly Resource Files in .NET
visibility 1,379
thumb_up 0
access_time 10 months ago
.NET - Update EF Core Tools
visibility 229
thumb_up 0
access_time 5 months ago