C#如何进行数据库迁移 EF Core Migrations使用指南

煙雲
发布: 2025-12-09 12:53:35
原创
308人浏览过
EF Core 迁移是通过C#代码同步模型与数据库结构的推荐方式,支持初始化、增量变更、回滚及生产环境安全实践。

c#如何进行数据库迁移 ef core migrations使用指南

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 配置后,只需再加一次迁移:

Sencha touch 开发指南 中文WORD版
Sencha touch 开发指南 中文WORD版

本文档主要讲述的是Sencha touch 开发指南;主要介绍如何使用Sencha Touch为手持设备进行应用开发,主要是针对iPhone这样的高端手机,我们会通过一个详细的例子来介绍整个开发的流程。 Sencha Touch是专门为移动设备开发应用的Javascrt框架。通过Sencha Touch你可以创建非常像native app的web app,用户界面组件和数据管理全部基于HTML5和CSS3的web标准,全面兼容Android和Apple iOS。希望本文档会给有需要的朋友带来帮助;感兴趣的

Sencha touch 开发指南 中文WORD版 0
查看详情 Sencha touch 开发指南 中文WORD版
  • 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使用指南的详细内容,更多请关注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号