7

私が作成しているシステム、1つのベース、2つの継承されたクラスに非常に単純なTPHセットアップを実装しようとしています。

ただし、継承されたクラスはすべて同じエンティティセットに属しているため、ループを使用するObjectContext内では、基本抽象クラスにしかアクセスできません。具体的なクラスである要素をどのように取得するのかよくわかりませんか?(私もそれをPOCOを使用するように変換しました)。

代替テキスト

次に、エンティティを使用するアプリケーション内で:

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

CelestialBodiesエンティティが設定されてsecいますが、私が期待するように惑星/衛星はありません。

それらにアクセスするために何をする必要があるのか​​よくわかりません。

ありがとう

4

2 に答える 2

6

OfType次の方法を使用できます。

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 に答える