related query how framework entity-framework poco eager-loading entity-framework-ctp5

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.