2017-10-19 34 views
0

我一直停留在我的查詢上選擇不同的數據選擇不同的數據..上查詢

假設數據單項

  • 彼得
  • 何塞
  • 約瑟夫
  • 彼得
  • 胡安
  • 邁克爾
  • 彼得

但是他們有(Primary key ID on SQL Table)

這裏不同的ID是我試過到目前爲止

var query = (from a in db.Employees 
      join b in db.People on a.PersonId equals b.PersonId 
      where a.IsSeparated != true 
      select b).Distinct(); 

var query = db.Employees.Join(db.People, x => x.PersonId, y => y.PersonId, (x, y) => new { x, y }) 
       .Where(z => z.x.IsSeparated != true).GroupBy(t => t.y.CompleteName).Select(x => x.FirstOrDefault()); 

但無論查詢還是顯示所有數據。我想要查詢的是如果有重複的數據使其不同。

如果你們對lambda發表評論請解釋我還在學習如何使用它。

+0

的[LINQ具有鮮明的ResultSet加入]可能的複製(https://stackoverflow.com/questions/3373087/linq-join-with-distinct -resultset) – kranz

回答

2

你可以用下面的LINQ嘗試:

var query = (from a in db.Employees 
      join b in db.People on a.PersonId equals b.PersonId 
      where a.IsSeparated != true 
      select b).GroupBy(x=> new { x.PersonId}).Select(x=>x.First()); 
+0

這意味着將personId分組? – KiRa

+0

是的,它會按PersonId分組。 –

+0

重複的名稱有不同的id。 – KiRa

0
var query = (from a in db.Employees 
      join b in db.People on a.PersonId equals b.PersonId 
      where a.IsSeparated != true 
      select b) 
      .GroupBy(x=> x.CompleteName) 
      .Select(grp => grp.Value.First()); 
+0

對不起,出現錯誤'不能轉換lambda表達式ssion來鍵入字符串,因爲它不是'.Select'部分的委託類型 – KiRa