如何在 Entity Framework 6 Code-First 中更改模型而不丢失生产数据?
How to change models without losing data in production in Entity Framework 6 Code-First?
我正在使用 Entity Framework 6 Code-First,我的应用程序正在生产中。我必须在不丢失任何数据的情况下对我的模型进行一些更改。
我必须执行如下更改:
- 改变两个实体的关系,从一对多到多对多。
- 更改实体 属性 的数据类型。
我需要种子数据库之类的东西,但我需要在更改模型之前加载数据以便稍后再次插入...我需要移动数据。当我更改关系时,我不会丢失数据,但关系会丢失。
我怎样才能完成这个过程?
非常感谢您的帮助。
我建议您按照以下步骤操作:
- 创建代表受影响表的数据和关系的临时表。确保您在 EF 之外执行此操作,使用
CREATE TABLE
sql
- BEFORE 运行ning
Update-Database
, 运行 将数据从相关表移动到临时表的脚本
- 运行
Update-Database
- 运行 用于将数据和关系插入新表的脚本
- 删除临时表
我正在使用 Entity Framework 6 Code-First,我的应用程序正在生产中。我必须在不丢失任何数据的情况下对我的模型进行一些更改。
我必须执行如下更改:
- 改变两个实体的关系,从一对多到多对多。
- 更改实体 属性 的数据类型。
我需要种子数据库之类的东西,但我需要在更改模型之前加载数据以便稍后再次插入...我需要移动数据。当我更改关系时,我不会丢失数据,但关系会丢失。
我怎样才能完成这个过程?
非常感谢您的帮助。
我建议您按照以下步骤操作:
- 创建代表受影响表的数据和关系的临时表。确保您在 EF 之外执行此操作,使用
CREATE TABLE
sql - BEFORE 运行ning
Update-Database
, 运行 将数据从相关表移动到临时表的脚本 - 运行
Update-Database
- 运行 用于将数据和关系插入新表的脚本
- 删除临时表