tengo clases como:inmueble cargando Deseoso de clase derivada usando incluyen
Person
{
Name
Address
}
Employee : Person
{
Compensation - object
}
Visitor : Person
{
}
Si escribo LINQ:
var persons = Context.Persons
.Include("Compensation");
me sale error:
A specified Include path is not valid. The EntityType 'Person' does not declare a navigation property with the name 'Compensation'.
Funciona bien si Hago:
var persons = Context.Persons
.OfType<Employee>()
.Include("Compensation");
Pero me gustaría obtener empleados y visitantes en la misma consulta.
Parece que hay una solicitud de esta característica en EF4 UserVoice: http://data.uservoice.com/forums/72025-ado-net-entity-framework-ef-feature-suggestions/suggestions/1249289-include-property-of-derived-classes?ref=title
pero no parece que será hecho en el corto plazo.
¿Cuál es una buena solución para este problema?
Cambio línea concat a: .Concat (Context.Persons.OfType ()); de lo contrario no compila. Cuando se ejecuta aún obtiene el mismo error que en la pregunta original. –
@Ladislav, en mi caso, el tipo 'Person' no es abstracto, hay entidades que son' Person' ni 'Employee' ni' Visitor'. Tu ejemplo no me dará esos ** 'Person' ** s. Intentar combinar la consulta 'Persona' causa la excepción informada por el OP. Cualquier solución alternativa será realmente apreciada (en mi caso no es 'Persona', es' Transacción' sino lo que sea). – Shimmy
@Shimmy: haga una pregunta por separado con un ejemplo del problema y haga referencia a esta. Los comentarios no son adecuados para resolver otro problema (incluso similar). –