当前位置: 首页 > news >正文

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 更适合跨平台与自动化流程。
    根据你的开发环境和团队协作方式选择最合适的方式即可。
http://www.xdnf.cn/news/433243.html

相关文章:

  • KIVI: A Tuning-Free Asymmetric 2bit Quantization for KV Cache
  • 影刀RPA开发-采集爬取京东读书书籍
  • 【React中函数组件和类组件区别】
  • day 22
  • 制作一款打飞机游戏47:跳转
  • ESP32C3连接wifi
  • java架构设计
  • 笔记项目 day02
  • 蓝卓生态赋能“星链计划”火热招募中
  • CAElinux系统详解
  • 保护数据安全的关键一步-安装加密软件
  • 进程与线程:07 CPU调度策略
  • python无法导入自己的包
  • Qt 样式表qss学习
  • 6大住宅代理IP服务商测评(2025更新)
  • 【xxl-job调度器的源码分析】
  • 结构化数据处理
  • GPU服务器集群部署
  • 【越狱检测】HSF: Defending against Jailbreak Attacks with Hidden State Filtering
  • c语言第一个小游戏:贪吃蛇小游戏06
  • 逃离 AI 困境:保障 “说不” 的权利,守护数字自由
  • Selenium自动化测试
  • git cherry-pick和git stash命令详解
  • Python爬虫如何应对网站的反爬加密策略?
  • 第九届御网杯网络安全大赛初赛WP
  • 多线程与并发之进程
  • Focal Loss 原理详解及 PyTorch 代码实现
  • 运行Spark程序-在shell中运行
  • 思路解析:第一性原理解 SQL
  • 2025.5.13山东大学软件学院计算机图形学期末考试回忆版本