2012-05-04 2 views
0

Проще говоря, как я могу сделать что-то вроде:Entity Framework выберите родители и N число детей

Выбрать все Departments вместе с 2 из последнихStaff.

мне не нужен весь персонал загружен, только 2.

Примечание: мне нужно lazyloading включен так, что staffdetails по-прежнему доступны в случае необходимости.

ответ

1

EF не позволяет фильтровать/упорядочивать или ограничивать количество возвращенных записей о свойствах навигации при активной загрузке. Вы должны использовать прогноз для анонимного типа или нестандартного типа:

var data = from d in context.Departments 
      select new 
       { 
        Department = d, 
        Staffs = d.Staff.OrderBy(...).Take(2) 
       }; 
+0

используя этот метод, нужно отключить lazyloading прямо? – Kagawa

+0

Не обязательно, если вы получаете доступ к персоналу только в том случае, если свойство появилось в новом возвращаемом типе. –

Смежные вопросы