在迁移时为外键添加值到表

时间:2015-04-17 08:30:44

标签: asp.net entity-framework

我试图整理一个数据库迁移,它将一个列添加到一个表中,该表是另一个表的外键,该表已经存在但不包含新列将引用的记录,因为这些表赢了& #39;添加,直到Seed()方法在数据库更新结束时运行。

作为迁移的一部分,我添加了Sql()调用以在新列中设置适当的值,但是当调用AddForeignKey()时它会失败

The ALTER TABLE statement conflicted with the FOREIGN KEY constraint "FK_Domain.LinkedAccount_Domain.LookupItem_StatusId".

大概是因为我添加的值并未引用外键表中的记录。

在AddForeignKey()调用之前,是否有[good | easy | standard]方法将值添加到外表中作为迁移的一部分?

1 个答案:

答案 0 :(得分:1)

在迁移文件中,首先将数据添加到外键表。然后,您可以使用join来获取新插入值的值

Sql("insert into foreignKeyTable");
Sql("insert into mainTable");

你可以在mainTable插入中使用这样的东西来获取新插入数据的ID。

insert into mainTable
select fkId, ...
from foreignKeyTable
where values in ('insertedValeue1','insertedValue2') // the new values in FK table