我有一个现有的数据库和.NET项目,我最近刚从RC1升级到RTM。由于交换机,由于表名的一些问题,我不得不创建new initial migration。我希望所有FK约束都是删除级联,这应该是默认行为。
如果我查看我的迁移文件,所有内容都是“onDelete:ReferentialAction.Cascade”,但这并没有反映在我的postgresql数据库中,其中所有内容都是“ON DELETE NO ACTION”。
我发现一个小小的突破是,如果我使用流畅的API来执行.OnDelete(DeleteBehaviour.Cascade)并尝试进行另一次迁移,它就没有效果。创建的迁移没有任何变化。但是如果我尝试.OnDelete(DeleteBehaviour.SetNull或其他任何东西),然后再进行另一次迁移,它将成功生成适当的迁移并进行适当的更改。这让我觉得EF已经认为数据库已经将所有内容都视为级联,而实际上却没有,可能是我在创建新的初始迁移时做错了什么?
如何修复此问题以使所有外键都在删除级联?最好不必为我的项目中的每个实体编写流畅的api语句