我有回到過去的UserBattle記錄每一個用戶查詢:轉換IQueryable的<IEnumerable的<Entity>>到的IQueryable <Entity>
objectContext.UserBattles.
GroupBy(bu => bu.UserId, bu => bu).
Select(gbu => gbu.OrderByDescending(bu => bu.DateTime).First());
遺憾的是它不工作(至少MySQL的.NET連接器供應商不能將First
轉換爲SQL)。作爲替代方案,我可以用Take(1)
替代第一個電話。但不幸的是,在這種情況下,結果將是IQueryable<IEnumerable<UserBattle>>
而不是IQueryable<UserBattle>
。有沒有辦法得到IQueryable<UserBattle>
而不去LINQ To Objects(例如,SelectMany會解決我的問題)。
嘗試.SingleOrDefault(),你想要什麼的方法 –
如果你只選擇一條記錄,那麼轉到LINQ to Objects有什麼問題? –
@Bertrand Marron,每個用戶一個 – SiberianGuy