2016-11-11 16 views
2

我有一個名爲「Assignment」的通用列表中的數據,如原始表中所示。想要根據ID分組並根據US-UK-India訂單僅顯示一條記錄。按ID分組的LINQ組 - 與命令區別

結果應該從第一個表格轉換爲第二個表格,如附圖所示。

enter image description here

+0

我想你需要,唯一的ID和第一個條目的細節一起。對? – Raghu

+1

你能否描述這個規則,因爲它不清楚這個例子嗎? – Enigmativity

+0

這個查詢背後的邏輯模式是什麼。你能確認或編輯你的問題嗎? –

回答

1

試試這個: SQL的語法。

from a in Assignments 
group a by a.Id into gr select gr.FirstOrDefault() 

Lambda表達式:

Assignments 
    .GroupBy (a => a.Id) 
    .Select (gr => gr.FirstOrDefault()) 
+0

你確定這個查詢會給出正確的輸出根據作者 –

+0

我想這是作者想要的! – James

+0

此查詢只生成一行,但作者期望結果爲表格。 – Raghu

0

試試這個,它的作品。我希望這是你所需要的。

var query01 = context.FirstTable 
      .GroupBy(p => p.ID 
      ,(ky, el) => new { ky.Value , FirstCountry = el.Select(p => Country).Take(1)}); 

var Result = query01 
      .Join(context.FirstTable 
      , ul => new 
      { 
      Id = ul.Value 
      ,Country = ul.FirstCountry.FirstOrDefault() 
      } 
      , fl => new 
      { 
      Id = (int)fl.ID 
      , Country = fl.Country 
      } 
      , (ul, fl) => new { fl }).ToList();