使用LINQ以分层顺序显示数据

时间:2011-11-09 05:39:23

标签: 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

IT部门有3个子部门.Net,Java,PHP。再次.net有自己的子部门Web开发人员和Windows开发人员等等。

如何使用LINQ实现这一目标。我使用的是使用C#,实体框架等的ASP.Net MVC 3.0。

4 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

您需要使用GroupBy功能。

答案 2 :(得分:0)

请看这个链接。它使用扩展方法.AsHierarchy()来表示分层数据

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

返回的对象将采用树形结构。然后,您必须决定您的表示逻辑(每个子节点的空间)

答案 3 :(得分:0)

您可以在操作代码中构建一组简单的Html,分配您在Action中使用linq获得的值动态生成的HTML的特定值。然后在你查看当你使用viewdata返回它时将其渲染为纯html并使用jquery在这里创建一个jquery树插件的一个很好的例子

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