29

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

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

enter image description here

Соответствующая зависимость: - Единый округа имеет много городов - Единый City имеет одно государство

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

В EF4, я хотел бы сделать это:

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

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

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

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

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

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

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

Как ICollection<City> не имеет свойство State.

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

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

ответ

51

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

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

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

+0

умный! пытаясь теперь ... следите за обновлениями. – RPM1984

+0

Прекрасно работает, спасибо мужу! +1 и принято. В последнее время вы не ответили на многие вопросы EF4 - Ладислав забирает нас обоих. :) – RPM1984

+0

Без проблем приятель! Это потому, что я полностью сосредоточен на вопросах EF Code First. Надеюсь, вы тоже начнете использовать его, так как я все еще вижу EDMX-файл по вашему вопросу :) –