我有一个查询语句,它返回每个用户的最后一条UserBattle记录:
objectContext.UserBattles.
GroupBy(bu => bu.UserId, bu => bu).
Select(gbu => gbu.OrderByDescending(bu => bu.DateTime).First());
抱歉,它不起作用(至少MySQL .NET Connector提供程序无法将
First
转换为SQL)。作为替代,我可以用 Take(1)
替换First调用。但不幸的是,在这种情况下,结果将是 IQueryable<IEnumerable<UserBattle>>
而不是 IQueryable<UserBattle>
。是否有任何方法可以获取 IQueryable<UserBattle>
而不去使用LINQ To Objects(例如,SelectMany将解决我的问题)?
FirstOrDefault
吗?在投影中,First
、Single
和SingleOrDefault
都不被支持,即使在 SQL Server 中也是如此。 - Slauma