EF Core 更新数据库需先执行 Add-Migration 生成迁移文件,再运行 Update-Database 应用迁移;直接 Update-Database 无效。迁移名可自定义,支持更新至指定迁移、回退或重置(Update-Database 0)。

EF Core 更新数据库主要靠 Update-Database 命令,但它不是“一键同步代码到库”,而是执行已存在的迁移(Migration)来变更数据库结构或数据。关键前提是:你得先有迁移文件。
先确保已有迁移文件
修改了实体类或 DbContext 后,不能直接 Update-Database,必须先生成迁移:
- 在包管理器控制台(PMC)运行:Add-Migration InitDb(InitDb 是迁移名,可自定义)
- 或使用 .NET CLI:dotnet ef migrations add InitDb
- 命令会生成一个带时间戳的迁移类(如
20241105082345_InitDb.cs)和快照文件 - 检查生成的
Up(MigrationBuilder migrationBuilder)方法,确认 SQL 操作符合预期(比如加字段、改类型等)
执行更新到最新迁移
生成迁移后,再运行更新命令:
- PMC:Update-Database(默认应用所有未执行的迁移)
- .NET CLI:dotnet ef database update
- 它会读取
_EFMigrationsHistory表,只执行尚未应用的迁移 - 成功后,数据库结构就和当前迁移一致了
指定更新到某一个迁移
有时需要回退或只更新到某个中间版本:
标签: js json app 环境变量 常见问题 .net
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~