2011-10-17 99 views
0

在我的概念模型中,我有一個'Box'可以包含'x'個小部件。一些小部件可以被存檔並且很少被訪問。一個盒子可以包含一個或多個小部件。爲了支持最大的數據庫性能,我想使用兩個相同的數據庫表;一個用於正常的小部件,另一個用於存檔的小部件。我不希望Box實體擁有兩個不同的小部件集合,例如IList<ArchiveWidget> & IList<Widget>,只有一個包含存檔和活動小部件。如何使用Entity Framework 4.0將相同的實體映射到相同的表?

如何將'Box'實體映射到同時使用存檔和活動表的'Widget'實體?

+0

您可能想查看Table Per Type Inheritance。 http://msdn.microsoft.com/en-us/library/bb738685.aspx –

回答

0

您可以試着解決這個問題:創建一個NewWidget和ArchivedWidget聯合的視圖。這將用於讀取數據。

另一種選擇是進入edmx文件並嘗試修復它。但是我不認爲這是可能的,因爲如果你創建一個新的小部件並且說保存,EF不會知道將哪個表放入其中。

您可以使用這兩種類型生成EF模型,然後移動將類型定義轉換爲基類,這兩個小部件都從中繼承而來。我沒有嘗試過,因此不確定它是否會起作用。

相關問題