在asp.net中访问EF的继承实体

时间:2013-12-29 22:02:58

标签: asp.net entity-framework

我开始使用EF(6.0)并提出一个简单的问题:

我使用模型第一种方法来设计包含名为“Component”的实体的实体模型。然后我创建了几个从这个基类型继承的实体,例如“VideoCard”。

现在在我的ASP.net代码中,我可以访问context.Components,但我似乎无法直接返回context.VideoCards。因此,如果我只想返回一个视频卡列表,我应该使用类似

的内容
 context.Components.OfType<VideoCard>();

(试过这似乎有用),还是我应该知道关于这个主题的其他内容?

编辑:我意识到这也有效:

context.Components.Where(x => x is VideoCard);

这些方法中的一种比另一种好吗?

提前感谢您的回复。

1 个答案:

答案 0 :(得分:1)

您可以在上下文中公开VideoCards属性,并通过它获取VideoCard个实体。

public class MyContext
{
  public DbSet<Component> Components { get; set; }
  public DbSet<VideoCard> VideoCards { get; set; }
}

并使用如下

var allVideoCards = context.VideoCards.ToArray();