我花了几个小时试图翻译简单的SQL以拉姆达LINQ转换SQL到LINQ拉姆达用的GroupBy和平均
SELECT ID, AVG(Score) FROM myTable
GROUP BY ID
任何想法?
我花了几个小时试图翻译简单的SQL以拉姆达LINQ转换SQL到LINQ拉姆达用的GroupBy和平均
SELECT ID, AVG(Score) FROM myTable
GROUP BY ID
任何想法?
var _result = from a in myTable
group a by a.ID into g
select new
{
ID = g.Key.ID,
AverageResult = g.Average(x => x.Score)
}
请注意'g.Key.ID'不存在,不会编译。这段代码中只需要'g.Key'。 –
@AnonyPegram为什么不能编译?我只是测试它。 –
此版本?你应该得到一个错误消息,粗略地说明''int'不包含'ID'的定义,也没有扩展方法'ID'接受......“(将int的实际属性替换为ID)。要点是'g.Key' *是ID。它不是包含ID属性的对象。 –
Linq-to-Objects中的等价物如下所示。
var results = from row in myTable
group row by row.Id into rows
select new
{
Id = rows.Key,
AverageScore = rows.Average(row => row.Score)
};
对于像实体框架这样的ORM只是略有不同。也就是说,您需要通过数据上下文或适当的DbSet/ObjectSet。
呢? :) – spajce