2015-03-14 3 views
0

В нашей базе данных у нас есть большая «божественная» таблица с несколькими родительскими/дочерними отношениями с другими таблицами (PK/FK) ... и эти таблицы имеют несколько отношений родитель/ребенок с другими таблицами ... и так далее , В основном дерево, укорененное на уровне «божества». Я знаю, что это общая структура таблиц.Как выбрать полное родительское/дочернее дерево объектов в EF?

Мы используем сущности Entity Framework для сопоставления таблиц. Есть ли достойный способ использовать Linq для выбора всего дерева записей в одном выражении? Может быть, что-то похожее на вложение/цепочку выбора для включения дочерних сущностей/таблиц, поэтому мы возвращаем объект god вместе со всеми его связанными объектами? Благодарю.

UPDATE: ОК, появляется, используя .Include() - это действительно то, что я ищу. Спасибо, что указали на дубликат.

+0

Могли бы вы предоставить нам пример схемы, чтобы сделать этот квест немного более конкретно? –

+0

Ну, я описал схему. Это довольно часто. Серия из одного-в-manys, создающая древовидную структуру отношений. Подобно структуре Directory, но вместо каталогов они являются таблицами. – TheDudeDude

ответ

0

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

var relatiesOverviewsEnumerable = relatieRepository 
      .Query() 
      .NoTracking() 
      .OrderBy(q => q.OrderBy(d => d.RelatieId)) 
      .Select(b => new RelatieOverview 
      { 
       RelatieId = b.RelatieId, 
       Naam = b.Naam, 
       BTW = b.BTW, 
       HoofdAdres = b.Adressen.FirstOrDefault(a => a.AdresTypeId == HoofdadresType) 
      }); 
     _relatieOverviews = new ObservableCollection<RelatieOverview>(relatiesOverviewsEnumerable); 
Смежные вопросы