EF Core 数据库迁移命令参考

在使用 Entity Framework Core 时,若你希望通过 Package Manager Console (PMC) 执行迁移相关命令,以下是常用的 EF Core 迁移命令:

PMC 方式

✅ 常用 EF Core PMC 命令(适用于迁移)

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

⚠️ 注意事项:

  1. 使用这些命令前,请确保:

    • 已安装 Microsoft.EntityFrameworkCore.Tools NuGet 包;
    • Visual Studio 中打开了 Package Manager Console
    • 默认项目(Default project 下拉框)选择的是包含 DbContext 的项目。
  2. 如果你使用的是多项目结构,请确保启动项目和迁移所在项目一致或已正确配置设计时工厂(IDesignTimeDbContextFactory)。

CLI 方式

以下是 EF Core 对应于 CLI(命令行接口)的常用迁移命令,适用于 .NET CLI 工具:


✅ 常用 EF Core 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
  • 生成从 MigrationAMigrationBSQL 脚本:
dotnet ef migrations script -o migration_diff.sql MigrationA MigrationB

⚠️ 注意事项:

  1. 使用前请确保:

    • 已安装 .NET SDK
    • 项目中已引用 Microsoft.EntityFrameworkCore.DesignMicrosoft.EntityFrameworkCore.Tools
    • 你的项目是可启动项目或已正确配置 DbContext
  2. 如果使用多项目结构,请在 CLI 中切换到包含 DbContext 的项目目录,或使用 -p 参数指定项目路径。例如:

dotnet ef migrations add MyMigration -p ./MyProject/MyProject.csproj

🧠 选择合适的方式

EF CorePMCPackage Manager Console)和 CLI(命令行接口)的迁移命令功能相同,但语法不同:

  • PMC 使用 Add-MigrationUpdate-Database 等 PowerShell 风格命令;
  • CLI 使用 dotnet ef migrations adddotnet ef database update 等 .NET CLI 命令。

在选择 EF Core 迁移命令方式时,根据使用场景可以做如下推荐:

✅ 推荐使用 PMC(Package Manager Console)

  • 适用人群:Visual Studio 用户、不熟悉命令行操作的开发者;
  • 优点
    • 操作简单,集成在 Visual Studio 中;
    • 不需要切换终端或目录;
    • 支持自动补全和命令提示。
  • 缺点
    • 只能在 Windows 上使用;
    • 不适合自动化脚本。

📌 当你在 Visual Studio 中开发 ASP.NET Core 或 .NET Framework 项目时,首选 PMC。


✅ 推荐使用 CLI(.NET Command Line Interface)

  • 适用人群:跨平台开发者、CI/CD 自动化用户、偏好命令行者;
  • 优点
    • 跨平台支持(Windows、macOS、Linux);
    • 易于集成到构建脚本、CI 流程中;
    • 更贴近现代 .NET 开发流程。
  • 缺点
    • 需要熟悉命令格式;
    • 在多项目结构中需手动指定项目路径。

📌 如果你使用 VS Code、Rider 或进行持续集成部署,首选 CLI。


总结一句话推荐:

  • PM 面向 Visual Studio 快速开发场景,CLI 更适合跨平台与自动化流程。
    根据你的开发环境和团队协作方式选择最合适的方式即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ChaITSimpleLove

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值