2017-01-08 2 views
2

Иерархически у меня 3 таблицы. 1 Классы таблиц 2 Student таблица -таблица состоянийКод First Select Complex Types With Include()

Классов есть студенты, студент имеет статус, как вы догадываетесь. Я пытаюсь полностью выбрать объект Classes со свойствами Students и свойствами статуса для всех учащихся.

Мое решение, которое не работает, приведено ниже.

var query = Context.Classes.Include(x=> x.Student.Statu); 
//result : query.Firts().Student.Statu = null 
//I am get Statu 

Я так много играл с функцией Include, я думаю, что мне не хватает некоторых точек. Спасибо.

+0

Какую версию EF вы используете? –

+1

Я думаю, что сложные типы всегда загружаются (похожие на примитивные типы), поэтому не требуется «Include». –

+0

Попробуйте 'Context.Classes.Include (x => x.Student.Select (y => y.Statu));' –

ответ

1

Ваш запрос должен выглядеть следующим образом:

EF 6,0

Выражение пути должен состоять из простых выражений доступа свойства вместе с вызовами Выберите для того, чтобы составить дополнительным включает в себя после включения свойства коллекции. Примеры: msdn.

Context.Classes.Include(x=> x.Student.Select(y => y.Status)); 

EF Основной

Вы можете перейти через отношения включать несколько уровней связанных данных с использованием метода ThenInclude. В следующем примере загружаются все блоги, их связанные записи и автор каждого сообщения. docs

Context.Classes.Include(x=> x.Student).ThenInclude(x => x.Status);