如何使用Entity Framework 4.0将同一实体映射到相同的表?

时间:2011-10-17 20:26:05

标签: entity-framework entity

在我的概念模型中,我有一个'Box',可以包含'x'个小部件。某些小部件可以存档,并且不经常访问。一个框可以包含一个或多个小部件。为了支持最大的数据库性能,我想使用两个相同的数据库表;一个用于普通小部件,一个用于存档小部件。我不希望Box实体有两个不同的小部件集合,例如IList<ArchiveWidget> & IList<Widget>,只包含一个包含存档和活动小部件的小部件。

如何将'Box'实体映射到同时使用存档和活动表的'Widget'实体?

1 个答案:

答案 0 :(得分:0)

您可以尝试解决此问题:创建一个NewWidget和ArchivedWidget联合的视图。这适用于读取数据。

另一种选择是进入edmx文件并尝试在那里修复它。但我不认为这是可能的,因为如果你创建一个新的小部件并说保存,EF就不会知道将它放在哪个表中。

您可以使用这两种类型生成EF模型,然后将类型定义移动到基类中,这两个小部件都继承自。我没有试过这个,所以不确定它是否会起作用。