1
我有一個需要拉從一個數據庫記錄拉不重複的記錄從數據庫中,我們假設這種結構使用兩列
ID,名稱,類型,鑰匙,EXPDATE,IsActive
現在有些重組已完成並且表格可能會根據ID和類型保存重複的記錄。我希望能夠使用linq從數據庫中提取記錄,但只能使用具有相同ID /類型的記錄之一。
EX:
1,佛瑞德,1,NewGuid,2019年12月15日,1
1,佛瑞德,1,NewGuid,2017年10月1日,1
2, Goerge,2,NewGuid,02/01/2018,1
我希望結果集是Fred和One for Goerge的1個記錄。實際上Fred的哪些記錄得到的回報並不重要,只有一個。
我試過使用DISTINCT,但是返回一個IDistinct而不是整個記錄。有沒有辦法使用linq來做到這一點?
這裏是我試過:
_table.AllReadOnly().Where(i => i.ID == id && i.IsActive).GroupBy(i => i.ID, i.Type).Select(i => i.FirstOrDefault()).ToList();
_table.AllReadOnly().Where(i => i.ID == id && i.IsActive).Distinct().ToList();
我知道.Distinct()一樣,什麼都不會做。我試圖找出如何做一個EqualityComparer,但我不知道如果這是我應該去的路線。
謝謝,這工作。我想知道爲什麼這種方式和我的方式一樣。我剛剛返回了一份清單。 –
不客氣。您已經通過簽名將'i.Type'作爲結果選擇器分組。你不需要它。 –