我有一条TSQL语句,它看起来很简单
select qGroup, AVG(score), COUNT(score)
from [Scores]
where [year] = 2014 and charIndex('s', qGroup, 0) <> 1
group by qGroup然而,我只是不知道如何用LINQ (点表示法)来表达这一点。
这是我失败的刺
List<qGroupModel> query = context.Scores.Where(p => (p.schoolID == schoolID) && (p.Year == year) && !(p.qGroup.StartsWith("S"))).Select(p => new { p.Average(p2 => p2.Score), p.qGroup }).GroupBy(p => p.qGroup).ToList<qGroupModel>();我从上面得到的错误如下
'Models.Score‘不包含'Average’的定义,也找不到接受'Models.Score‘类型的第一个参数的扩展方法'Average’(您缺少使用指令还是程序集引用?)
我的灵光不是很好。但还是..。这似乎比它应该做的更难。
请帮帮忙
发布于 2014-07-07 04:13:38
你可以试试这个方法:
List<qGroupModel> query =
context.Scores
.Where(p => (p.schoolID == schoolID) && (p.Year == year) && !(p.qGroup.StartsWith("S")))
.GroupBy(p => p.qGroup)
.Select(p => new qGroupModel { p.Average(p2 => p2.Score), p.qGroup })
.ToList();https://stackoverflow.com/questions/24602693
复制相似问题