EF6从数据库更新代码优先模型

时间:2020-02-27 04:32:11

标签: asp.net-mvc entity-framework-6

我使用Entity Framework 6.2继承了ASP.NET MVC应用程序。该应用程序最初是使用Code First构建的,我可以看到已应用于数据库的迁移。数据库的结构似乎是准确的。

但是,已添加大量关系来解决引用完整性问题,这些关系直接在数据库上完成。有很多。有人可以在代码优先实现中帮助我从数据库更新模型吗?理想情况下,它将首先保留代码,而不是进行转换,但是我需要进行一次更新。

我对较新的EF Core更为熟悉,我认为这与运行带有-force和一些清理功能的scaffold-dbcontext命令一样容易。但是在此较旧的版本中没有这种运气。有类似的东西吗?

1 个答案:

答案 0 :(得分:0)

取决于“吨”的含义以及是否需要保留旧的迁移,您可以通过执行code first from existing database来重建整个模型,也可以将生成的代码保存到文件夹中并进行手动重建:

  1. 首先将代码从现有数据库运行到新文件夹中。
  2. 将新字段和导航属性映射到现有模型中。
  3. 修正所有流利的代码(modelBuilder)。
  4. 生成应包含这些更改的迁移。
  5. 一个好的测试是恢复数据库的变更前版本并对其进行迁移。然后也许使用模式比较实用程序。
  6. 将迁移应用于数据库。如果数据库已经包含更改,请在应用之前注释掉Up()代码。这将更新存储的模型,因此下一次迁移不会重复这些更改。