entity framework - query - EF CTP5-Carga ansiosa fuertemente tipada-¿Cómo incluir las propiedades de navegación anidadas?
load related entities entity framework core (1)
Intentando trasladar nuestra solución de EF4 a EF CTP5, y se encontró con un problema.
Aquí está la parte relevante del modelo:
La relación pertinente: Un solo condado tiene muchas ciudades . Una sola ciudad tiene un solo estado.
Ahora, quiero realizar la siguiente consulta: - Obtener todos los condados en el sistema e incluir todas las ciudades y todos los estados para esas ciudades.
En EF4, haría esto:
var query = ctx.Counties.Include("Cities.State");
En EF CTP5, tenemos una inclusión fuertemente tipada, que toma una Expression<Func<TModel,TProperty>>
.
Puedo obtener todas las ciudades para el condado sin problema:
var query = ctx.Counties.Include(x => x.Cities);
Pero, ¿cómo puedo obtener el estado para esas ciudades también?
Estoy usando POCO puro, así que County.Cities
es un ICollection<City>
, por lo tanto no puedo hacer esto:
var query = ctx.Counties.Include(x => x.Cities.State)
Como ICollection<City>
no tiene una propiedad llamada State
.
Es casi como si tuviera que usar un IQueryable anidado.
¿Algunas ideas? ¿Debo recurrir a la cadena mágica Incluir en este escenario?
Para eso puedes usar el método Seleccionar :
var query = ctx.Counties.Include(x => x.Cities.Select(c => c.State))
Aquí puedes encontrar otro ejemplo.