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

来源:这里教程网 时间:2026-02-21 17:33:29 作者:

在 EF Core 中执行 Add-Migration 是为数据库模型变更生成迁移代码的关键步骤。它不会直接修改数据库,而是创建一个继承自

MigrationsDbContext
的迁移类(含
Up
Down
方法),记录你对实体、关系或配置的改动。

确保项目环境已就绪

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

项目中已安装
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
的项目目录,运行:

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 就是轻量又可靠的起点。

相关推荐