2010-04-29 23 views
0

我有3個使用實體集對象相互嵌套的數據集對象。我選擇了數據這樣使用select語句的多級對象上的Linq組

var newList = from s in MainTable 
from a in s.SubTable1 where a.ColumnX = "value" 
from b in a.Detail where b.Name = "searchValue" 
select new { 
    ID = s.ID, 
    Company = a.CompanyName, 
    Name = b.Name, 
    Date = s.DueDate 
    Colour = b.Colour, 
    Town = a.Town 
}; 

並能正常工作,但麻煩的是有在細節對象列表/表中的每個名稱值多條記錄,所以我得到重複行的負荷,因此我只想每個b.Name顯示一條記錄。我試圖把

group s by b.Name into g 

之前的選擇,但這樣做似乎停止選擇讓我選擇我想要的列(還有更多,在實踐中)。如何在這種情況下使用group命令,同時仍然保持輸出行爲「平坦」格式?

+0

當然,如果你分組你的結果,你不能得到選擇一個孩子的列,這是因爲可能有多個孩子,你必須指定一個聚合列例如sum,max etx – alejandrobog 2010-04-29 22:42:45

+0

我只從底層子項中選擇1列,其他所有列都來自頂層或中間父層,所以沒有理由說明爲什麼會有任何含糊不清,但我從SQL中看到了什麼意思看法。 – 2010-04-30 07:37:33

+0

是的,每個專欄的分組整理出來 - 你可以把這個答案作爲答案,Alejandrobog,所以我可以相信你正確的答案和相關的要點 – 2010-04-30 11:31:58

回答

0

附加評論爲回答關閉問題: - 當然,如果您對結果進行分組,您無法選擇某個孩子的列,那是因爲可能有多個孩子,並且您必須指定一個聚合列例如,總和,最大etx -