2010-09-25 35 views
0

我有這樣一個數據表:自參照許多一對多LINQ查詢

MtoM 
{ 
    ParentID, 
    ChildID 
} 

Item 
{ 
    ID, 
    Data, 
    Label 
} 

我怎樣寫一個LINQ查詢,根據給定的PARENTID和相關數據返回每個childID的和標籤爲每個這些派生的ID。如果我使用SQL,我會使用union allinner join,但我不知道linq足夠做這件事。

性能絕對不是問題,因爲最多隻有3層嵌套,每層只有1或2個物品。我試圖填充的DDL很少使用,不是關鍵任務。

回答

0

假設子ID是闖民宅ID字段中的項目表中,U可以寫下面的查詢來獲取所需的記錄

from mt in MToM 
where mt.ParentID == GivenParentID 
join it in Item on mt.ChildId equals it.ID 
select new { parentID = mt.ParentID, childID = it.ID, childData = it.Data, childLabel = it.Label} 

數據匿名類型被返回。你可以創建新的類型並用結果記錄填充它