我有回到过去的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