从表构建树结构?

时间:2017-12-27 17:02:44

标签: c# entity-framework

我对此问题有类似的要求: What is the most efficient/elegant way to parse a flat table into a tree?

在我的情况下,表可能包含数百万行,根节点结构的深度可能在5到6左右,但节点的宽度可能很大,

我正在使用实体框架C#,有没有一种快速有效的算法可以通过实体找出结构?

1 个答案:

答案 0 :(得分:0)

如果您有DataTable,可以尝试这样的事情(递归函数):

private void FillTree(TreeNode pnode,DataTable data)
    {
        DataRow[] cnodes = data.Select("catparent=" + pnode.Tag.ToString());
        foreach (DataRow crow in cnodes)
        {
            TreeNode ctn = new TreeNode(crow["catname"].ToString());
            ctn.Name = "Cat" + crow["cat_id"].ToString();
            ctn.Tag = crow["cat_id"].ToString();
            pnode.Nodes.Add(ctn);
            FillTree(ctn, data);
        }
    }

这是我的表结构:

This is my table structure: