本题引用http://www.matthidinger.com/archive/2009/02/08/asp.net-mvc-recursive-treeview-helper.aspx
假设我有一个如下所示的表格:
(来源:matthidinger.com)
我有一个递归数据结构,如下所示:
public class TreeNode
{
public TreeNode(){}
public string NodeId { get; set; }
public string ParentId { get; set; }
public string Name { get; set; }
public IEnumerable<TreeNode> Children { get; }
}
如何使用 Linq 从表中填充此递归数据结构?
注意:为了这个问题的目的,请假设我已经有了一个非常高效的表;即它完全驻留在内存中,或者正在使用 CTE 进行访问。实际上,我只是在寻找 Linq 查询以将其从 Linq to SQL DataContext 获取到递归对象。我知道它可能会涉及 ForEach 和递归函数调用;我只是无法完全理解它。
提前致谢。
最佳答案
我认为您最好的选择是使用 CTE 在 SQL 中查询层次结构。 LINQ2SQL 和分层/关系数据不能很好地混合。参见 Hierarchical data in Linq - options and performance .
关于c# - 从自引用数据库表填充递归数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1976325/