结合MVC 5 Code First Project中的迁移

时间:2017-05-23 01:28:58

标签: asp.net-mvc-5 code-first ef-migrations

非常快速的问题。

我从事MVC 5 Code First项目,并在数据库模型中做了很多小改动。有时,更改会覆盖以前的更改。 update-database -targermigration InitialCreate是否安全,然后删除所有迁移(初始除外)和add-migration cumulative? 我希望专家意见如。 提前谢谢。

1 个答案:

答案 0 :(得分:1)

了解其他人对此的做法很有意思,但我会添加我会做的事情。 (免责声明:我很久没有这样做了)

首先是一些背景。代码迁移是代码片段,告诉数据库在模型类中进行更改后如何更新自身。由于您正在进行开发而您尚未将代码推送到生产环境,因此没有必要进行迁移,因为没有需要处理的生产数据库。现在,如果需要,您可以简单地删除本地数据库,并在每次进行更改时从头开始重建。但这很耗时。

但有更好的方法:自动迁移。每次进行更改并致电Update-Database时,EF都会(在幕后)为您创建迁移并更新数据库。

  1. 运行Enable-Migrations –EnableAutomaticMigrations
  2. 每次进行模型更改时,请运行Update-Database
  3. 请注意,在某些更改中,仍然需要您按照指定here手动添加迁移。

    现在,这显然不适合生产环境for a variety of reasons

    因此,当您构建应用程序的MVP版本时,我只会删除本地数据库,并覆盖初始迁移,如图here所示。

    1. 删除InitialCreate.cs(或整个Migrations文件夹...)
    2. 运行Add-Migration InitialCreate
    3. 删除本地数据库。
    4. 运行Update-Database -Force