【发布时间】:2013-10-02 23:32:25
【问题描述】:
我在 sql 中有一个表,它有三列(ID、Name、ParentID),每列都有很多记录。现在我想要的是从 ParrentId 中获取所有层次结构,将其包含在三个视图中。
这可以通过一些不错的 LINQ 解决方案来解决吗?
我之前尝试的是使用一组 List-s,其中一个是子级,但出现问题是因为某些子级列表下还可以有更多子级。
我需要 linq 代码:
List<Menu> hList = new List<Menu>();
var m1 = new Menu();
var m2 = new Menu();
var m3 = new Menu();
hList.AddRange(new List<Menu>() { m1, m2, m3});
当然,在实际示例中,它不会只是 3 个子 var-s。
感谢任何帮助和建议!
【问题讨论】:
-
+1 只是掷骰子,但
AssociateWith不能实现这样的目标吗?您是否正在寻找 T-Sql 的WITH与UNION组合的 linq 等效项? -
您是否使用 linq-to-sql 或 linq-to-entities 映射数据库中的这些数据?如果是这样,您是否可以不只是修改您的表,以便您有一个自引用的外键引用 ParentID->ID...当您从数据库中检索时,它将自动将您的对象映射到所需的层次结构中。