2011-01-02 13 views
7

Tratando de implementar una configuración de TPH muy simple para un sistema que estoy creando, 1 base, 2 clases heredadas.EF TPH Herencia Query

Sin embargo, todas las clases heredadas pertenecen al mismo conjunto de entidades, por lo que dentro de mi bucle de ObjectContext using, solo puedo acceder a la clase abstracta base. No estoy muy seguro de cómo obtengo los elementos que son clases concretas? (También lo he convertido a usar POCO).

alt text

A continuación, dentro de mi aplicación utilizando las Entidades:

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

Hay una entidad CelestialBodies situado en sec, pero no hay planetas/Satélites como era de esperar.

No estoy seguro de lo que se debe hacer para acceder a ellos.

Gracias

Respuesta

5

Puede utilizar el método OfType:

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

Como Thomas Levesque describe OfType método de extensión le permitirá consultar el tipo sólo heredó única que realmente desea acceder. Si accede directamente al CelestialBodies, obtendrá todas las entidades. Cada entidad será del tipo Planet o Satellite, pero tendrá que emitirlas para acceder a sus propiedades.