EF Migration不会更新数据库中的删除约束FK(新的初始迁移)

时间:2016-07-19 14:57:35

标签: asp.net-mvc entity-framework postgresql foreign-keys relational-database

我有一个现有的数据库和.NET项目,我最近刚从RC1升级到RTM。由于交换机,由于表名的一些问题,我不得不创建new initial migration。我希望所有FK约束都是删除级联,这应该是默认行为。

如果我查看我的迁移文件,所有内容都是“onDelete:ReferentialAction.Cascade”,但这并没有反映在我的postgresql数据库中,其中所有内容都是“ON DELETE NO ACTION”。

我发现一个小小的突破是,如果我使用流畅的API来执行.OnDelete(DeleteBehaviour.Cascade)并尝试进行另一次迁移,它就没有效果。创建的迁移没有任何变化。但是如果我尝试.OnDelete(DeleteBehaviour.SetNull或其他任何东西),然后再进行另一次迁移,它将成功生成适当的迁移并进行适当的更改。这让我觉得EF已经认为数据库已经将所有内容都视为级联,而实际上却没有,可能是我在创建新的初始迁移时做错了什么?

如何修复此问题以使所有外键都在删除级联?最好不必为我的项目中的每个实体编写流畅的api语句

1 个答案:

答案 0 :(得分:0)

使用this answer重新创建初始迁移。我之前尝试过的方法试图保留以前的数据库,而这个删除并重新创建它。