ON DELETE CASCADE支持?

时间:2012-01-13 09:42:33

标签: c# mysql entity-framework ef-code-first

正如标题所说,我正在尝试使用Entity Framework,MySQL和CodeFirst删除对象。

我的对象中有多对多的关系,我只删除了一个约定:

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

2 个答案:

答案 0 :(得分:0)

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

我相信这可以回答你的问题。该链接显示了如何在删除时禁用级联,但正如您将看到的,打开它只是一个调用的问题

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

答案 1 :(得分:0)

通过在 EF迁移文件中强制cascadeDelete: true,我得到相同的结果。

ON DELETE设置为RESTRICT,时间应为CASCADE 我必须手动更改FK以使其正常工作。

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