EF新手,我有一個問題。實體框架4:從父集合中刪除子實體時出現ForeignKey問題
好的,所以,我有一個與相關表(一對多關係)的實體。該實體擁有相關表中的子對象集合。我想從相關集合中刪除一個對象,但不是從子表中刪除一個對象。
但是,當我呼叫<entity>.myRelatedChildTable.Remove(childEntity)
,然後調用_context.SaveChanges()
時,我得到一個有關ForeignKey約束的異常。現在,如果我撥打_context.DeleteObject()
,然後_context.SaveChanges()
我們沒有問題。但是,現在我們還沒有子實體 - 它從數據庫中刪除。
這裏是異常的文本: 操作失敗:關係不能被改變,因爲一個 或多個外鍵的屬性是不可爲空。當對某個關係進行的更改爲 時,相關的外鍵屬性設置爲空值 值。如果外鍵不支持空值,則必須定義新的關係 ,必須爲外鍵屬性指定另一個非空值,或者必須刪除不相關的對象。
任何人都有一個想法/建議如何解決這個問題?
它聽起來像是異常描述確切的問題......具有外鍵的SQL表是否允許鍵的空值?如果不是,EF將不能刪除被引用的行,因此是異常。 – sipwiz 2010-07-15 23:30:58
它不允許出現空值,這就是問題(其他人擁有數據庫,我無法更改它)。我需要將它從集合中刪除,但不是從數據庫瓦特/ o引起異常。我需要知道我做錯了什麼。 – 2010-07-15 23:33:28