我有这个看起来很简单的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>();
我从上面得到的错误如下
&#39; Models.Score&#39;不包含&#39;平均值&#39;的定义和不 扩展方法&#39;平均值&#39;接受第一个类型的参数 &#39; Models.Score&#39;可以找到(你是否错过了使用指令或 装配参考?)
我的LINQ敏锐度并不是那么好......但仍然......这似乎比它应该更难。
请帮忙
答案 0 :(得分:0)
您可以尝试这种方式:
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();