场景: 我有数据库表,存储另一个表的多对多关系的层次结构。一个项目可以有多个子项,也可以有多个父项。递归Linq分组
Items
------
ItemID (key)
Hierarchy
---------
MemberID (key)
ParentItemID (fk)
ChildItemID (fk)
样品层次:
Level1 Level2 Level3
X A A1
A2
B B1
X1
Y C
我想组中的所有子节点通过层次结构中的每一个父节点。
Parent Child
X A1
A2
B1
X1
A A1
A2
B B1
X1
Y C
- 请注意有在父列中没有叶节点,以及如何将儿童柱只有包含叶节点。
- 理想情况下,我希望结果为IEnumerable <
IGrouping<
项目,项目>>其中关键是一个父项和组项目都是子项。 - 理想情况下,我想要一个解决方案,实体提供者可以将其转换为T-SQL,但如果这不可行,那么我需要将往返次数减少到最少。
- 我打算在叶节点上加入另一个表中存在的Sum值。
谢谢你的发表!我以类似的方式实现了递归。 (+1)它适用于单元测试,但我仍然需要根据数据库进行测试。如果它运作良好,我会接受你的答案。 – 2011-03-07 02:10:25