EF Core如何添加迁移 EF Core添加迁移(Add-Migration)方法

煙雲
发布: 2025-12-15 14:42:07
原创
703人浏览过
Add-Migration 是为 EF Core 数据库模型变更生成迁移代码的关键步骤,创建含 Up/Down 方法的迁移类,需确保工具包安装、启动项目设置正确、DbContext 可发现,并支持 PMC 或 CLI 方式执行。

ef core如何添加迁移 ef core添加迁移(add-migration)方法

在 EF Core 中执行 Add-Migration 是为数据库模型变更生成迁移代码的关键步骤。它不会直接修改数据库,而是创建一个继承自 MigrationsDbContext 的迁移类(含 UpDown 方法),记录你对实体、关系或配置的改动。

确保项目环境已就绪

添加迁移前需确认以下几点:

  • 项目中已安装 Microsoft.EntityFrameworkCore.Tools(用于包管理器控制台)或 Microsoft.EntityFrameworkCore.Design(用于 .NET CLI)
  • 启动项目(如 Web API 或 MVC 项目)已设为默认启动项目,或通过 -Project / --project 明确指定含 DbContext 的项目
  • DbContext 类已正确配置(例如在 Program.cs 中通过 AddDbContext 注册),且能被工具发现

使用包管理器控制台(PMC)添加迁移

在 Visual Studio 的“工具 → NuGet 包管理器 → 包管理器控制台”中运行:

Add-Migration InitialCreate -Context ApplicationDbContext

  • InitialCreate 是迁移名称,可自定义(如 AddUserEmail
  • -Context 参数指定具体 DbContext 类型名,多上下文时必须提供
  • 若提示“找不到 DbContext”,检查是否选对了默认项目(右上角下拉框),或显式加 -StartupProject

使用 .NET CLI 添加迁移

在命令行(终端)中,定位到含 DbContext 的项目目录,运行:

Docky AI
Docky AI

多合一AI浏览器助手,解答问题、绘制图片、阅读文档、强化搜索结果、辅助创作

Docky AI 100
查看详情 Docky AI

dotnet ef migrations add AddOrderStatus --context ApplicationDbContext

  • add 是 CLI 中对应 Add-Migration 的子命令
  • --context 同样用于指定上下文类型,大小写敏感
  • 若报错 “No project was found”,请确认当前目录下有 .csproj 文件,且已安装 dotnet-ef 全局工具(dotnet tool install --global dotnet-ef

常见问题与注意事项

迁移不是万能的自动同步工具,需人工核对:

  • 生成的迁移文件会放在 Migrations/ 目录下,打开查看 Up(MigrationBuilder migrationBuilder) 是否准确反映了你的改动(比如字段重命名可能被识别为删+增,丢失数据)
  • 若模型改动涉及数据迁移(如拆分列、转换值),需手动在 Up 方法中补充 migrationBuilder.Sql("...") 或使用 InsertData/UpdateData
  • 误操作后想撤回:删除刚生成的迁移文件 + 对应快照(*ModelSnapshot.cs),再重新 Add-Migration;不要仅删文件而不删快照

基本上就这些。只要环境配对、上下文明确、命名清晰,Add-Migration 就是轻量又可靠的起点。

以上就是EF Core如何添加迁移 EF Core添加迁移(Add-Migration)方法的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号