Как может я делать многоуровневое родительско-дочернее использование вида 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
Выполнение иерархического поиска / сортировки со списком смежности - непростая задача, особенно в Linq.
Вместо того, чтобы писать здесь большой блок кода для этого, я порекомендую вам обратиться к кому-нибудь еще, кто это уже сделал:
Метод расширения Linq AsHierarchy ()
Это преобразует список смежности в реальный древовидная структура, которую затем легко отображать / искать / сортировать в иерархической форме.
Думаю, это сработает. Он не тестировался, дайте мне знать:
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
Я ставлю
from section in db.Sections
where section.sec=0
orderby section.Name
будет достаточно и Linq сделает все остальное только нужно указать состояние LoadWith statement