一 Entity Framework 如何在很多migrations的情况下重新利用package console 去创建新的数据库
1、 暂时性移除数据库项目项目的migrations文件夹
2、打开菜单 Tools =>Nutget Package Manager =>package manager console
3、在package manager console 里面选择数据库的项目,并且把数据库的项目设置为启动项目
4、输入 Enable -migrations update-database
二 对于数据库的修改可以指定某个migration文件
public partial class PaperTest : DbMigration
{
public override void Up()
{
AddColumn("dbo.Papers", "Test", c => c.String());
}
public override void Down()
{
DropColumn("dbo.Papers", "Test");
}
}
Class的名称是上面Add后面定义的。而类下面有两个方法,一个是Up,一个是Down。在Up里面,记录了需要升级的修改,这里也就是Papers表格增加了列Test。只要我们在后面执行Update-Database,就会执行此类下面的Up函数。
这里的Down函数简单介绍就是,为了回滚修改而设计的。如果用户希望恢复到某一个迁移节点,程序会自动根据已经执行的迁移,判断回滚哪些迁移,执行他们的Down函数
三 迁移至指定版本(包括后退)
迄今为止,我们总是升级至最新迁移,然而某些时候我们需要升级/降级至指定版本,例如我们想迁移数据库至运行 AddBlogUrl 迁移之后的状态,此时我们就可以使用 –TargetMigration 来降级到这个版本
在 Package Manager Console 中运行命令 Update-Database –TargetMigration: AddBlogUrl
You can rollback to any migration by using:
Update-Database -TargetMigration:"MigrationName"
If you want to rollback all migrations you can use:
Update-Database -TargetMigration:0
or equivalent:
Update-Database -TargetMigration:$InitialDatabase