Отображать данные в иерархическом порядке с помощью LINQ

#c# #linq #entity-framework

#c# #linq #entity-framework

Вопрос:

У меня есть таблица department со следующими столбцами.

 Id  (P.K.)
Name
ParentDepartmentId (F.K. of same Department table)
  

Теперь я хочу отобразить все данные в иерархическом порядке с помощью LINQ. что-то вроде этого:

  IT
    .Net
        Web Developer
        Windows Developer
    Java
    PHP
Technical Support
    OffLine
    Online
  

Где у него есть 3 подразделения .Net, Java, PHP. еще раз .в net есть свой собственный отдел web developer и Windows developer и так далее.

Как я могу добиться этого с помощью LINQ. Я использую ASP.Net MVC 3.0 с использованием C #, Entity Framework и т.д.

Комментарии:

1. Вы хотите привязать их к некоторому treeview?

2. Вы хотите отобразить их в виде древовидной структуры.

3. Я думаю, что treeview — это ASP.Net управление, и я использую asp.net MVC. Вот почему я хочу отобразить их без привязки к какому-либо элементу управления.

4. @Cold сказал, что да, я хочу отобразить это в виде древовидной структуры.

Ответ №1:

Ниже приведена ссылка на то, что именно я хотел.

http://tpeczek.com/2010/01/asynchronous-treeview-in-aspnet-mvc.html

Ответ №2:

Вам нужно использовать GroupBy функцию.

Комментарии:

1. Да, я думаю, вы правы. Но как мы можем использовать GroupBy в Linq. Не могли бы вы, пожалуйста, дать мне запрос, чтобы отобразить его в виде древовидной структуры?

Ответ №3:

Пожалуйста, посмотрите эту ссылку. Он использует метод расширения .AsHierarchy() для представления иерархических данных

http://www.scip.be/index.php?Page=ArticlesNET18#AsHierarchy .

Возвращаемый объект будет иметь древовидную структуру. Вам просто нужно определиться с вашей логикой представления (пространство для каждого дочернего узла)

Ответ №4:

Вы можете создать простой набор HTML в коде вашего действия, присвоив конкретные значения вашего HTML, которые вы создаете динамически в своем действии, значениям, которые вы получаете с помощью linq. Затем при просмотре, когда вы возвращаете его с помощью viewdata, визуализируйте его как чистый html и используйте jquery для создания дерева вот хороший пример плагина jquery tree

http://mbraak.github.com/jqTree/