Подтвердить что ты не робот

EF CTP5 - Сильно типизированная загруженная загрузка - как включить вложенные навигационные свойства?

Попытка прервать наше решение EF4 для EF CTP5 и столкнулась с проблемой.

Здесь соответствующая часть модели:

enter image description here

Соответствующее отношение:  - В одном округе есть много городов  - Один Город имеет одно состояние

Теперь я хочу выполнить следующий запрос:  - Получите все округа в системе и включите все города и все государства для этих городов.

В EF4 я бы сделал следующее:

var query = ctx.Counties.Include("Cities.State");

В EF CTP5 мы имеем строго типизированный Include, который принимает Expression<Func<TModel,TProperty>>.

Я могу получить все города для округа без проблем:

var query = ctx.Counties.Include(x => x.Cities);

Но как я могу получить государство для этих городов?

Я использую чистые POCO, поэтому County.Cities является ICollection<City>, поэтому я не могу этого сделать:

var query = ctx.Counties.Include(x => x.Cities.State)

Поскольку ICollection<City> не имеет свойства, называемого State.

Как будто мне нужно использовать вложенный IQueryable.

Любые идеи? Нужно ли мне возвращаться к магической строке Include в этом сценарии?

4b9b3361

Ответ 1

Для этого вы можете использовать метод Select:

var query = ctx.Counties.Include(x => x.Cities.Select(c => c.State))

Здесь вы можете найти другой пример.