您好我正在使用EF 4自我跟蹤實體。我有三個表格(問卷,部分和頁面)如下:刪除時EF4循環引用問題
Questionnaire
Id
Title
WhenClosedShowPageId
Section
Id
QuestionnaireId
Page
Id
SectionId
因此,在EF模型問卷中有章節和章節有頁。 WhenClosedShowPageId是一個可爲空的int,它引用頁面以顯示調查問卷關閉時的情況。所有參考文獻都有關聯以保持參照完整性。
當我將所有實體標記爲已刪除並嘗試保存時,問題就出現了。如果當我檢索數據時,WhenClosedShowPageId爲空,那麼刪除工作正常。如果將WhenClosedShowPageId設置爲一個值,則EF無法確定要刪除的順序。這是可以理解的。但是,如果我將WhenClosedShowPageId設置爲null,則將實體標記爲已刪除並保存,同樣的事情發生。我希望EF首先生成一條更新語句,將數據庫中的WhenClosedShowPageId設置爲null,然後再刪除實體。
我可以看到解決這個問題的唯一方法是自己做兩次獨立保存,第一次將WhenClosedShowPageId設置爲null,第二次刪除實體。這是一個非常分層的應用程序,但我不想爲此創建特殊情況。
有沒有辦法解決這個問題?如果實體已被標記爲刪除
達倫