我正在使用ADO.NET實體框架構建ASP.NET MVC網站。 我有包括這些實體的實體模型,由外鍵關聯:實體框架不會在具有兩級關係的新實體上進行SaveChanges
報告(編號,日期,標題,Report_Type_ID等)
- 子報表(ID,ReportText等) - 一個與報告的一對一關係。
- ReportSource(ID,Name,Description) - 與Sub_Report的一對多關係。
- ReportSourceType(ID,Name,Description) - 與ReportSource的一對多關係。
- 聯繫人(ID,姓名,地址等) - 與Report_Source的一對一關係。
- ReportSource(ID,Name,Description) - 與Sub_Report的一對多關係。
沒有爲每種類型的子報表的Create.aspx頁。後事件方法返回一個新的Sub_Report實體。
之前,在我的崗位的方法,我遵循了這一過程:
- 設置屬性與網頁的領域一個新的報告實體。
- 從頁面的字段中設置SubReport實體的特定屬性。
- 設置子報表實體的報告在1
- 鑑於該頁面提供的ID創建的新報告實體,仰望ReportSource和Sub_Report實體的ReportSource已找到的實體。
- SaveChanges。
該工作流程在幾個星期內成功完成。然後在上個星期發生了一些變化,並且它不再工作。現在,而不是保存操作,我得到這個異常:
UpdateException: "Entities in 'DIR2_5Entities.ReportSourceSet' participate in the 'FK_ReportSources_ReportSourceTypes' relationship. 0 related 'ReportSourceTypes' were found. 1 'Report_Source_Types' is expected."
調試可視化顯示以下內容:
- 子報表的ReportSource設置和加載,並且它的所有屬性都是正確的。
- Report_Source具有附加的有效ReportSourceType實體。
在SQL事件探查器中,準備好的SQL語句看起來很好。任何人都可以指出我缺少什麼明顯的東西嗎?
TIA
注: 報告和子報表總是在這種情況下,新的實體。 報表實體包含許多類型報表的常用屬性,用於通用查詢。 SubReports是特定的報告,其中的額外參數因類型而異。實際上爲每種類型的SubReport設置了不同的實體集,但是這個問題適用於所有這些實體,因此我使用SubReport作爲簡化示例。
你可能想給一個代碼片段,它肯定會幫助我弄清楚是怎麼回事。通常這樣的問題通過一些代碼很容易看到。 – 2009-08-18 05:39:56
謝謝你的迴應,亞歷克斯。我會盡量在稍後發佈一些代碼。現在,我只是將它標記爲EF爲1.0,並用存儲過程替換了我的代碼。 – 2009-08-18 18:24:47