2013-03-28 3 views
0

Моей базе данныхСортировать по Вложенным ассоциациям

[ Departement ] *-* [ Group ] 1-* [ Room ] 

Departement может иметь много групп (много - много), и группа может иметь много комнат

Я хочу вернуть departement с определенным идентификатором, получить groups заказ на group.name и получить rooms из групп, заказанных room.number

То, что я до сих пор

db.Departement .Include("Group.Room").ToList().First(a => a.Id == idDepartement); 

Проблема заключается в том, что я не знаю, как сортировать по ассоциации (группы и номер)

благодаря

ответ

0

Если вход x является IEnumerable<Department> то:

x.SelectMany(d => d.Group).OrderBy(g => g.Name) 

будет результатом является IEnumerable<Group>, заказанный по имени (по всем отделам). Enumerable.SelectMany принимает Func<TIn, IEnumerable<TOut>> и объединяет все возвращенные перечисления в один перечислимый; это позволяет вам следить за ассоциацией из одного или нескольких исходных объектов во многие связанные объекты.

хотят вернуть Департмент с определенным идентификатором [...] получить номера из групп заказанных room.number

Вы хотите, чтобы результат совокупности отделов, группы или номера?

.ToList().

Это означает, что вы получаете все отделы со всеми группами и помещений от источника Entity и перемещение их в локальную память до этого выбрасывая большую часть данных (все не связанные с первый возвращенный отдел). Если данные не являются достаточно маленькими, было бы лучше сделать это на источнике сущности (предполагается, что сервер баз данных), а не тратить время и пропускную способность, скопировав его локально.

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