場景: 我有數據庫表,存儲另一個表的多對多關係的層次結構。一個項目可以有多個子項,也可以有多個父項。遞歸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