2012-01-13 160 views
2

正如標題所說,我試圖用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

回答

0

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

我相信這個回答你的問題。鏈接說明如何在刪除禁用級聯,但你會看到,把它就是簡單地調用

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

通過EF遷移文件迫使cascadeDelete: true的問題,我得到了相同的結果。

ON DELETE設置爲RESTRICT,當它應該是CASCADE
我必須手動更改FK才能正常工作。

編輯:錯誤提交在Mysql bug跟蹤器上。