2010-07-30 122 views
2

我有一個包含文章和博客表的現有數據庫。這些列有兩個表中重複的共同列,如標題,作者。我想利用實體框架來創建一個內容實體,該實體引入公共屬性,以便我可以繼承Article和Blog實體中的Content實體。實體框架中的繼承 - 每個具體類的表?

這個想法是,我可以說好的只是讓我在過去10天的網站上的所有內容,我不在乎它是否是博客或文章。然後,當我需要實際獲取一篇文章生病獲取具體的實體。

我已經建立了一個內容實體庫並引入了所有常見的博客和目標屬性。問題是我在內容中想要說的。我有兩個映射到博客表和一個到文章表和EF抱怨說,它無法確定哪一個轉到。我希望添加條件來做到這一點,但如果我添加一個博客特定的條件(那些沒有在我的基類中列出),它抱怨它無法找到映射。

我提出我的第一個問題是我在看完全倒退爲了讓我的內容實體從文章表和博客表中獲取數據?

感謝

菲爾

編輯:添加模型和數據庫模式

alt text alt text

回答

0

我不熟悉的實體,但你可以創建其中包含數據庫的視圖所有常用數據加上一個額外的關鍵字,將記錄標識爲博客或文章。

然後,您可以將視圖添加到實體模型中,使用它來實現「從過去10天獲取內容」用例,然後在需要更多細節時,使用添加到視圖中的額外鍵來確定無論你是否需要去博客或文章實體。我知道這並不像你想要的那樣乾淨整潔,但它可以完成這項工作。

0

正如here所述,在EF ADO.NET Designer(但最初是EF)中沒有TPC繼承支持。因此,必須以xml手動執行,或者通過Code First手動執行。