在使用 Entity Framework Core
时,若你希望通过 Package Manager Console (PMC) 执行迁移相关命令,以下是常用的 EF Core
迁移命令:
操作 | PMC 命令 |
---|---|
添加迁移 | Add-Migration MigrationName |
更新数据库到最新迁移 | Update-Database |
回滚一个迁移 | Update-Database -ToMigration PreviousMigrationName |
删除最后一次迁移(未应用到数据库) | Remove-Migration |
查看迁移历史 | Get-Migrations |
生成 SQL 脚本(从某一迁移到另一迁移) | Script-Migration -From MigrationA -To MigrationB |
生成 SQL 脚本(所有迁移) | Script-Migration |
InitialCreate
的迁移:Add-Migration InitialCreate
Update-Database
Update-Database -ToMigration PreviousMigrationName
使用这些命令前,请确保:
Microsoft.EntityFrameworkCore.Tools
NuGet 包;Visual Studio
中打开了 Package Manager Console;Default project
下拉框)选择的是包含 DbContext
的项目。如果你使用的是多项目结构,请确保启动项目和迁移所在项目一致或已正确配置设计时工厂(IDesignTimeDbContextFactory
)。
以下是 EF Core 对应于 CLI(命令行接口)的常用迁移命令,适用于 .NET CLI 工具:
操作 | CLI 命令 |
---|---|
添加迁移 | dotnet ef migrations add MigrationName |
删除最后一次迁移 | dotnet ef migrations remove |
更新数据库 | dotnet ef database update |
更新数据库到指定迁移 | dotnet ef database update TargetMigrationName |
查看迁移历史 | dotnet ef migrations list |
生成 SQL 脚本(从某一迁移到另一迁移) | dotnet ef migrations script -o output.sql FromMigration ToMigration |
生成 SQL 脚本(所有迁移) | dotnet ef migrations script -o output.sql |
InitialCreate
的迁移:dotnet ef migrations add InitialCreate
dotnet ef database update
dotnet ef database update PreviousMigrationName
dotnet ef migrations remove
MigrationA
到 MigrationB
的 SQL
脚本:dotnet ef migrations script -o migration_diff.sql MigrationA MigrationB
使用前请确保:
.NET SDK
;Microsoft.EntityFrameworkCore.Design
和 Microsoft.EntityFrameworkCore.Tools
;DbContext
。如果使用多项目结构,请在 CLI 中切换到包含 DbContext
的项目目录,或使用 -p
参数指定项目路径。例如:
dotnet ef migrations add MyMigration -p ./MyProject/MyProject.csproj
EF Core
中 PMC
(Package Manager Console
)和 CLI
(命令行接口)的迁移命令功能相同,但语法不同:
Add-Migration
、Update-Database
等 PowerShell 风格命令;dotnet ef migrations add
、dotnet ef database update
等 .NET CLI 命令。在选择 EF Core 迁移命令方式时,根据使用场景可以做如下推荐:
当你在 Visual Studio 中开发 ASP.NET Core 或 .NET Framework 项目时,首选 PMC。
如果你使用 VS Code、Rider 或进行持续集成部署,首选 CLI。