ON DELETE CASCADE支持?
问题描述:
正如标题所说,我试图用Entity Framework,MySQL和CodeFirst删除一个对象。ON DELETE CASCADE支持?
我有我的对象许多一对多的关系,我只删除一个约定:
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
在我的背景。但我仍然试图删除时得到这个:
Cannot delete or update a parent row: a foreign key constraint fails (`db`.`jagtartjagtrejse`, CONSTRAINT `JagtArt_JagtRejser_Target` FOREIGN KEY (`JagtRejse_JagtRejseID`) REFERENCES `jagtrejse` (`JagtRejseID`))
是不是在mysql连接器中不支持删除级联,或者是错的?
答
https://stackoverflow.com/a/5532950/965013
我相信这个回答你的问题。链接说明如何在删除禁用级联,但你会看到,把它就是简单地调用
modelBuilder.Entity<...>()
.HasRequired(...)
.WithMany(...)
.HasForeignKey(...)
.WillCascadeOnDelete(true);
答
通过EF迁移文件迫使cascadeDelete: true
的问题,我得到了相同的结果。
ON DELETE
设置为RESTRICT
,当它应该是CASCADE
。
我必须手动更改FK
才能正常工作。
编辑:错误提交在Mysql bug跟踪器上。
这些问题可能有助于http://stackoverflow.com/questions/3334619/cannot-delete-or-update-a-parent-row-a-foreign-key-constraint-fails,http://stackoverflow.com/questions/1905470/can not-delete-or-update-a-parent-row-a-foreign-key-constraint-failures – Eranga 2012-01-13 09:47:56
谢谢,但他们不遗憾,因为它与Entity Framework和CodeFirst有关, (不应该)触及任何SQL DDL。 – Dynde 2012-01-13 09:52:55