用linq进行查询时,实现对应的集合函数的操作,出错了,想请教如何解决?
c#程序中调用了linq语句进行数据库查询操作。有一张学生成绩表,用来记录每个学生的各科成绩。如StudCourse表,字段如下:
SNo(学号),CNo(课程号),Courses(成绩),Memo(备注)。记录内容:
SNo,CNo,Courses,Memo
01 A01 87
01 A02 90
02 A01 77
02 A02 60
01 A03 66
02 A03 72
01 A04 88
01 A05 73
如果不是用linq语句,要实现查询,查询某个学号的学生的各科的总分如下:
select SNo,Sum(Courses) from StudCourse where SNo='01' 查询01号同学的各科总分
如果改用linq语句,是不是这样实现:
var results =
(
from ds in db.StudCourse
where ds.SNo == "01"
select new StudCourseModel { SNo = ds.SNo, Courses = Convert.ToDecimal(db.StudCourseModel.Sum(a => a.Courses)) }
).Distinct().ToList();
return results;
Courses = Convert.ToDecimal(db.StudCourseModel.Sum(a => a.Courses)) 这句出错?请帮我看看。
相当于把
select SNo,Sum(Courses) from StudCourse where SNo='01' 改成linq语句