LINQ语法帮助:投影和分组

Wil*_*ill 0 c# linq linq-to-sql

LINQ的新功能.我很好奇在LINQ中执行以下SQL查询的语法

SELECT MAX(TMPS), DAY FROM WEATHERREADINGS
GROUP BY WEATHERREADINGS.DAY
Run Code Online (Sandbox Code Playgroud)

到目前为止我所拥有的:

var minTemps = from ps in ww.WEATHERREADINGS
               group ps by ps.DATE.Hour into psByHour
               select new
               {
                   HourOfDay = psByHour.Max().DATE.Hour,
                   MaxTemp = psByHour.Max().TMPS
               };
Run Code Online (Sandbox Code Playgroud)

这样做时我收到以下错误:

异常详细信息:System.InvalidOperationException:无法将节点"New"格式化为SQL执行.

任何帮助非常感谢!!

tva*_*son 6

我认为以下是你想要的.请注意,您可以从分组中获取密钥,因此无需在那里进行聚合.您需要提供一种机制来选择要为另一个进行聚合的项目.

var maxTemps = from ps in ww.WEATHERREADINGS
               group ps by ps.Date.Hour into psByHour
               select new
               {
                    HourOfDay = psByHour.Key,
                    MaxTemp = psByHour.Max( p => p.TMPS )
               };
Run Code Online (Sandbox Code Playgroud)