【发布时间】:2011-03-07 06:57:06
【问题描述】:
场景: 我有一个数据库表,它存储另一个表的多对多关系的层次结构。一个项目可以有多个子级,也可以有多个父级。
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
- 注意父列中没有叶节点,子列只有包含叶节点。
- 理想情况下,我希望结果采用 IEnumerableIGrouping<Item, Item>> 的形式,其中键是父项,组项都是子项。
- 理想情况下,我想要一个实体提供程序可以转换为 T-SQL 的解决方案,但如果这不可能,那么我需要将往返行程保持在最低限度。
- 我打算对叶节点上连接的另一个表中存在的值求和。
【问题讨论】:
标签: linq entity-framework linq-to-entities