2013-04-17 31 views
1

我正在開發Lightswitch應用程序,需要查看屏幕中的某些聚合數據。但是,LightSwitch不支持「group by」和「sum」,所以我的問題是如果不使用它就可以重寫。重寫「group by」LINQ無需分組

partial void RuleEntriesByUserSaveId_PreprocessQuery(int? UserSaveId, ref IQueryable<RuleEntry> query) 
{ 
    query = query.Where(re => re.Revision == null || re.Revision == UserSaveId) 
       .GroupBy(re => re.Key) 
       .Select(g => g.FirstOrDefault(x => x.Revision != null) ?? g.First()); 
} 

我知道我可以做一個WCF RIA服務並使用它,但我寧願不進入那個麻煩。謝謝!

+2

標準循環是否剛剛被Linq的崛起所遺忘? –

+0

Lightswitch確實支持「Group By」和「Sum」。只是不以你想要使用它們的方式。你能描述你的實體領域和你想要完成的事情嗎?從代碼中不清楚。 –

回答

1

深入挖掘這個問題很明顯,在PreprocessQuery函數中,不能被完成。如果你需要聚合數據,你一定會使用某種抽象的數據層。我設法通過添加WCF RIA服務來做到這一點,如this guide。它需要一些時間來理解,但最終的努力絕對值得!