我正在將舊的ASP應用程序遷移到現代的.NET版本,以減少我們正在查看.NET 4.0實體框架的開發時間。但是,在這個問題上,我們似乎在我們的發展中遇到了一堵磚牆。Table-per-hierarchy and inheritance implementation issue
鑑於這是我們的數據庫的一小部分: 一個表OBJECT,其中包含汽車列表及其各自的屬性。我們還有一個表OBJECT_OPTIONS,其中包含OBJECT中給定的汽車的選項,配件和標準設備列表。這三種類型都具有相同的字段,因此存儲在同一個表中。列ncopt_type用於區分不同的列表。可能的值是:'opt','acc'和'sta'。表OBJECT_OPTIONS通過ncopt_obj_id鏈接到OBJECT,它代表表OBJECT中的唯一汽車(obj_id)。
我們的目標是提供對象實體與3個屬性鏈接到不同的OBJECT_OPTIONS列表: - 屬性選項 - 財產配件 - 財產STANDARDEQUIPMENT
我們試過不同的教程和演練有關表通過繼承模型的層次結構,但尚未成功創建可構建的模型。
技術上我們所做的是:
- 創建實體對象
- 創建實體OBJECT_OPTIONS,使抽象的
- 添加實體的選擇,配件和STANDARD_EQUIP全部使用基本類型OBJECT_OPTIONS
- 條件添加到所有ncopt_type ='...'上的三個表格
- 將3個導航屬性添加到OBJECT中,全部鏈接到其中一個繼承的實體:OPTIONS,ACCESSORIES和STAND AARD_EQUIPMENT
誤差的一束這個安裝過程中顯示出來,但我們最終與這一個:
錯誤3032:問題在映射片段起始於線250,286:EntityTypes NCO.Model。 OPTION,NCO.Model.ACCESSOIRE,NCO.Model.STANDAARD_EQUIP被映射到表OBJECT_OPTIES中的相同行。映射條件可用於區分這些類型映射到的行。
雖然所有三個對象都存在條件。
我發現這個問題沒有解決辦法,並已花費太多時間。我們目前正在使用一種解決方法,但希望能夠解決這個問題,因爲在項目結束時,這種情況會再次出現幾次。
任何幫助表示讚賞,如果您需要更多信息,請給我評論或電子郵件。
所以,EHM,沒有人知道? – 2010-09-21 08:51:58
它不會出現。我有同樣的問題,也許這只是我們兩個! – Stimul8d 2011-03-29 08:17:17
您可以附加edmx的相關表格和相關實體的圖像嗎? - 這將有助於澄清你正在嘗試做什麼。編輯後在這裏留言。 – 2011-04-20 21:42:26