如何在Entity Framework 6 Code-First中更改模型而不丢失生产中的数据?

时间:2017-06-20 21:05:16

标签: c# entity-framework ef-migrations

我正在使用Entity Framework 6 Code-First,我的应用程序正在生产中。我必须在模型中执行一些更改而不会丢失任何数据。

我必须执行以下更改:

  • 更改两个实体的关系,从一对多多对多
  • 更改实体属性的数据类型。

我需要种子数据库之类的东西,但是我需要在更改模型之前加载数据以便以后再次插入...我需要移动数据。当我改变关系时,我不会丢失数据,但关系确实如此。

我该怎么做这个过程?

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

我建议您按照以下步骤操作:

  1. 创建代表数据的临时表&受影响的表格的关系。确保使用CREATE TABLE sql
  2. 在EF之外执行此操作
  3. BEFORE 运行Update-Database,运行脚本将数据从相关表格移动到临时表格
  4. 运行Update-Database
  5. 运行脚本以将数据和关系插回到新表中
  6. 删除临时表