7

尝试为我正在制作的系统实现一个非常简单的 TPH 设置,1 个基类,2 个继承类。

但是继承的类都属于同一个实体集,所以在我的 ObjectContext 使用循环中,我只能访问基础抽象类。我不太确定如何获得具体类的元素?(我也将其转换为使用 POCO)。

替代文字

然后在我的应用程序中使用实体:

using (SolEntities sec = new SolEntities()) {
    Planets = sec.CelestialBodies;
}

有一个 CelestialBodies 实体集sec,但没有我期望的行星/卫星。

不太确定需要做什么才能访问它们。

谢谢

4

2 回答 2

6

You can use the OfType method:

using (SolEntities sec = new SolEntities()) {
    Planets = sec.CelestialBodies.OfType<Planet>();
}
于 2011-01-02T15:17:23.547 回答
3

正如 Thomas Levesque 所描述OfType的扩展方法将允许您仅查询您真正想要访问的单个继承类型。如果您CelestialBodies直接访问,您将获得所有实体。每个实体都将是类型Planet,或者Satellite您必须强制转换它们才能访问它们的属性。

于 2011-01-02T15:54:14.463 回答