Search code examples
c#entity-frameworkc#-4.0tph

EF TPH Inheritance Query


Trying to implement a very simple TPH setup for a system I'm making, 1 base, 2 inherited classes.

However the inherited classes all belong to the same entity set, so within my ObjectContext using loop, I can only access the base abstract class. I'm not quite sure how I get the elements which are concrete classes? (I've also converted it to using POCO).

alt text

Then within my application using the Entities:

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

There's a CelestialBodies entity set on sec, but no Planets/Satellites as I'd expect.

Not quite sure what needs to be done to access them.

Thanks


Solution

  • You can use the OfType method:

    using (SolEntities sec = new SolEntities()) {
        Planets = sec.CelestialBodies.OfType<Planet>();
    }