2011-10-17 62 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模型,然后移动将类型定义转换为基类,这两个小部件都从中继承而来。我没有尝试过,因此不确定它是否会起作用。

相关问题