Installing the tools
dotnet ef can be installed as either a global or local tool.
dotnet tool install --global dotnet-ef
dotnet new tool-manifest # if you are setting up this repo dotnet tool install --local dotnet-ef
Before you can use the tools on a specific project, you’ll need to add the Microsoft.EntityFrameworkCore.Design package to it.
dotnet add package Microsoft.EntityFrameworkCore.Design
Update the tools
dotnet tool update --global dotnet-ef to update the global tools to the latest available version. If you have the tools installed locally in your project use
dotnet tool update dotnet-ef. Install a specific version by appending
--version <VERSION> to your command. See the Update section of the dotnet tool documentation for more details.
dotnet ef database drop
Deletes the database.
dotnet ef database update
Updates the database to the last migration or to a specified migration.
dotnet ef dbcontext info
Gets information about a
dotnet ef dbcontext list
dotnet ef dbcontext optimize
Generates a compiled version of the model used by the
DbContext. Added in EF Core 6.
dotnet ef dbcontext scaffold
Generates code for a
DbContext and entity types for a database. In order for this command to generate an entity type, the database table must have a primary key.
dotnet ef dbcontext script
Generates a SQL script from the DbContext. Bypasses any migrations.
dotnet ef migrations add
Adds a new migration.
dotnet ef migrations bundle
Creates an executable to update the database.
dotnet ef migrations list
Lists available migrations.
dotnet ef migrations remove
Removes the last migration, rolling back the code changes that were done for the latest migration.
dotnet ef migrations script
Generates a SQL script from migrations.
Reverting a Migration
Suppose you changed your domain class and created the second migration named
MySecondMigration using the
add-migration command and applied this migration to the database using the
Update command. But, for some reason, you want to revert the database to the previous state. In this case, use the
update-database <migration name> command to revert the database to the specified previous migration snapshot.
dotnet ef database update MyFirstMigration
The above command will revert the database based on a migration named
MyFirstMigration and remove all the changes applied for the second migration named
MySecondMigration. This will also remove
MySecondMigration entry from the
__EFMigrationsHistory table in the database.
Note: This will not remove the migration files related to
MySecondMigration. Use the
remove commands to remove them from the project.