使用Entity Framework迁移添加新的父表

时间:2012-08-21 16:53:31

标签: entity-framework ef-migrations

我正在尝试使用迁移将父表添加到现有子表。例如。我目前有User表,现在我想添加一个具有1对多关系的Department表:Department has many User

我的问题,在自动更新中,我可以在添加FK之前以某种方式播种父表,以便我可以将所有子项更新为此默认种子Department?如果自动更新无法执行此操作,我该如何在代码中完成此操作?

我目前做了什么:使FK可以为空,创建父级并播种,然后将所有子User FK更新为父级。但是现在我无法改变FK而不是可空,因为抛出了这个错误:Automatic migration was not applied because it would result in data loss.

1 个答案:

答案 0 :(得分:1)

从nullable切换到non-nullable被认为是数据丢失,因为在迁移之后,无法分辨哪些行(如果有)为null。如果您对此感到满意,可以使用-Force标志调用Update-Database。

另一种选择是添加基于代码的迁移:

  1. 添加Departments表
  2. 插入默认部门
  3. 将所需的FK列添加到User,其默认值为插入的部门