EF Code First 数据库模型迁移及自动迁移
1.今日完成任务
- 实体模型的修改
- 实体模型的更新
2.核心代码
我们在应用程序开发过程中,难免会遇到数据库原本设计考虑不周或开发需求临时调整,而导致开发进度缓慢,甚至无法继续下去的致命性问题。解决此类问题的更有效地方式,就是根据需求的调整而调整数据库结构。虽然我们不推荐这么做,但对于没有很明确需求的我们,也是很难避免的!
数据迁移的几个常用命令:
Enable-Migrations:启用数据库迁移,只要生成了Migrations文件夹下次执行就不需要这个命令了。
Add-Migration: 生成修改数据库的脚本文件,命令格式Add-Migration+修改描述
Update-Database :执行数据库更改
Remove-Migration :移除最后一次生成的数据迁移文件,只能一次一条移除,不能指定移除某一个文件
自动迁移及手动迁移
通过Enable-Migrations启用迁移后,VS会自动在项目里生成一个Migrations文件夹,这里存放的就是每次执行数据迁移的模型修改记录。手动迁移的话,需要显示调用Add-Migration命令,而且会自动在该文件夹下生成以时间戳+修改描述的.cs文件。如果不需要关心中间过程的话,我们也就不需要生成这些过程文件,这时候我们就可以通过配置来启用自动迁移啦!
找到Migrations文件夹下的Configuration文件,在其构造函数里添加如下代码即可:
自动迁移:
(1)在创建的实体类中添加一个字段
(2)打开程序包管理器控制台
(3)在程序包管理器控制台输入enable-Migrations,在该项目下会自动生成Migrations文件夹
(4)打开Migrations文件夹下的Configuration.cs,并设置AutomaticMigrationsEnabled = true;
(5)在程序包管理器控制台输入Update-Database -script,查看更新数据库的脚本
(6)在程序包管理器控制台输入Update-Database,成功之后刷新数据库,该表中会增加一个字段
手动迁移:
(1)在创建的实体类中添加一个字段
(2)打开程序包管理器控制台
(3)在程序包管理器控制台输入enable-Migrations,在该项目下会自动生成Migrations文件夹
(4)打开Migrations文件夹下的Configuration.cs,并设置AutomaticMigrationsEnabled = false;
(5)在程序包管理器控制台指定脚本名称:Add_Migration脚本名称
(6)在程序包管理器控制台输入Update-Database -script,查看更新数据库的脚本
(7)在程序包管理器控制台输入Update-Database,成功之后刷新数据库,该表中会增加一个字段
4.项目进度规划