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连接器中不支持删除级联,或者是错的?

+0

这些问题可能有助于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

+0

谢谢,但他们不遗憾,因为它与Entity Framework和CodeFirst有关, (不应该)触及任何SQL DDL。 – Dynde 2012-01-13 09:52:55

https://stackoverflow.com/a/5532950/965013

我相信这个回答你的问题。链接说明如何在删除禁用级联,但你会看到,把它就是简单地调用

modelBuilder.Entity<...>() 
     .HasRequired(...) 
     .WithMany(...) 
     .HasForeignKey(...) 
     .WillCascadeOnDelete(true); 

通过EF迁移文件迫使cascadeDelete: true的问题,我得到了相同的结果。

ON DELETE设置为RESTRICT,当它应该是CASCADE
我必须手动更改FK才能正常工作。

编辑:错误提交在Mysql bug跟踪器上。