Как я могу сделать много использование вида родительского ребенка уровня Linq?

Как может я делать многоуровневое родительско-дочернее использование вида Linq, если у меня есть структура таблицы как та ниже:

[Table: Sections]  
Id   Seq   Name        ParentSectionId  
1    1     TOP         NULL  
2    1     AAAA        1  
3    2     SSSS        1
4    3     DDDD        1  
5    1     SectionA1   2
6    2     SectionA2   2  
7    1     SectionS1   3  
8    3     ASummary    2  

Ожидаемый результат вида:

TOP  
  AAAA  
    SectionA1  
    SectionA2  
    ASummary  
  SSSS  
    SectionS1  
  DDDD  
5
задан Tenacious T 28 March 2010 в 20:10
поделиться

3 ответа

Выполнение иерархического поиска / сортировки со списком смежности - непростая задача, особенно в Linq.

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

Метод расширения Linq AsHierarchy ()

Это преобразует список смежности в реальный древовидная структура, которую затем легко отображать / искать / сортировать в иерархической форме.

7
ответ дан 14 December 2019 в 08:46
поделиться

Думаю, это сработает. Он не тестировался, дайте мне знать:

from section in db.Sections
group section by section.ParentSectionId into childGroup
orderby childGroup.Key
from childSection in childGroup.OrderBy(child => child.Seq)
select childSection
0
ответ дан 14 December 2019 в 08:46
поделиться

Я ставлю

from section in db.Sections
where section.sec=0
orderby section.Name

будет достаточно и Linq сделает все остальное только нужно указать состояние LoadWith statement

0
ответ дан 14 December 2019 в 08:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: