0

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

我的问题是,在自动更新中,我是否可以在添加 FK 之前以某种方式为父表播种,以便我可以将所有子表更新为此默认播种Department?如果自动更新不能做到这一点,我该如何在代码中完成呢?

我目前所做的:使 FK 可以为空,创建父级并为其播种,然后将所有子User级 FK 更新为父级。但是现在我无法更改 FK 不可为空,因为会引发此错误:Automatic migration was not applied because it would result in data loss.

4

1 回答 1

1

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

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

  1. 添加部门表
  2. 插入默认部门
  3. 使用插入部门的默认值将所需的 FK 列添加到 User
于 2012-08-21T18:10:25.500 回答