EF Core 迁移是通过C#代码同步模型与数据库结构的推荐方式,支持初始化、增量变更、回滚及生产环境安全实践。

EF Core 的迁移(Migrations)是将代码模型变更同步到数据库的推荐方式,核心在于用 C# 代码描述数据库结构演进,避免手动写 SQL 或丢失版本历史。
初始化迁移:从模型生成第一个迁移文件
当你已有实体类和 DbContext,但数据库还不存在或为空时,先执行:
dotnet ef migrations add InitialCreate —— 生成名为 InitialCreate 的迁移类(含 Up/Down 方法)dotnet ef database update —— 执行迁移,创建数据库及表结构
注意:确保项目已安装 Microsoft.EntityFrameworkCore.Tools 包,并在 CLI 中处于包含 DbContext 的项目目录下。
后续变更:添加新字段、新表或修改关系
改完实体类或 Fluent API 配置后,只需再加一次迁移:
dotnet ef migrations add AddUserEmailAndStatus —— 名称建议体现变更意图EF Core 会自动对比当前模型与上一个 Migration.cs 中的快照(ModelSnapshot),生成差异代码若自动生成不理想(如误删列),可手动编辑 Up() 方法,但需同步调整 Down()
管理迁移历史与回滚
迁移不是单向的,支持安全回退和版本控制:
dotnet ef database update 20230101120000_InitialCreate —— 回退到指定迁移(含其本身)dotnet ef database update 0 —— 清空数据库(慎用,仅开发环境)所有迁移文件都应纳入源码管理,团队成员拉取新迁移后运行 update 即可同步库结构
生产环境注意事项
上线前务必验证迁移行为,避免阻塞部署:
用 dotnet ef migrations script 生成 SQL 脚本,供 DBA 审核或离线执行避免在迁移中写业务逻辑(如插入种子数据),改用 HasData() 或独立初始化方法大表加索引或非空字段时,考虑分步迁移(先加可空列 → 补数据 → 改为不可空),防止锁表过久
基本上就这些。迁移本质是“模型即 Schema”,保持实体与迁移一致,就能让数据库跟着代码一起成长。
以上就是C#如何进行数据库迁移 EF Core Migrations使用指南的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1442831.html
微信扫一扫
支付宝扫一扫