我有一個相當複雜的LINQ查詢,連接幾個表,並選擇一個新的匿名類型是三個IEnumerable的{Users, JobProviders, Jobs}
。它返回一個IQueryable來維護延遲執行,從而消除this question中的DistintBy。Linq選擇不同的兩個屬性
其中一列是排名,我需要確保只選擇每個作業(另一列,許多作業將被選中)的排名最低的記錄。獨特不起作用,因爲排名顯然會使該行獨一無二。
我認爲group子句可能會有所幫助,但它會將返回類型更改爲IGrouping。我不完全瞭解小組是如何工作的,所以我可能是錯的,但它看起來不行。對於每項工作,有沒有什麼辦法可以說只採用最低級別?
像
let jobRank = JobProvider.Rank
...where min(rank)
'Distinct'採用'IComparer'作爲可選參數。在'CompareTo'方法中提供你自己的不包含'Rank'的方法。 – Servy 2012-04-13 20:13:47
我認爲在L2E中無法完成延期執行,因爲它無法將其轉換爲TSQL。這不是這種情況嗎? – Tyrsius 2012-04-13 20:29:59