我正在開發一個.NET應用程序,我需要根據條件過濾來自SQL Server 2008的數據。我的數據結構是這樣的:LINQ - 過濾器重複條件
結果進行分組和排序的關鍵。默認情況下,應該爲每個Key返回具有Revision null的行,但是如果revisionParameter被設置,則應該返回具有相應版本號的行。如果參數爲2,則輸出應爲:
abc 2 FALSE
def null TRUE
ghj 2 FALSE
klm null TRUE
我該如何在LINQ中完成此操作?由於
編輯: 迴應lazyberezovsky: 你的LINQ表達改寫爲lambda:
partial void RuleEntriesByUserSaveId_PreprocessQuery(int? UserSaveId, ref IQueryable<RuleEntry> query)
{
query = query.Where(re => re.Revision == null || re.Revision == value)
.GroupBy(re => re.Key)
.Select(g => g.FirstOrDefault(x => x.Revision != null) ?? g.First());
}
你嘗試過什麼嗎? –