在linq中使用join group by 和order by实现多表联查
最近突然碰到在Linq中使用group实现多表联查的问题,虽然由于时间关系没有细细研究,现在回过头来,终于把问题解决了
代码如下:
var results = from s in student
where rawData.id== queriedid
join c in course
on s.id equals c.studentId
group new { c, s} by new { c.ID } into grouped//, rawData.TestResult, rawData.TestComments, rawData.TestCaseName, smallBVTMetadata.Components, smallBVTMetadata.TestName
let g=grouped.FirstOrDefault()
let gg=g.s
let ggg=g.c
orderby c.studentId
select new
{
ggg.courseName,
ggg.score,
gg.name,
gg.sex,
gg.age,
gg.ID,
};
在group之后,我们就无法继续访问到s和c,类似s.age,c.score之类的写法都是错误的,因为无法访问到s和c。
另附sql group 用法 http://www.cnblogs.com/wang-123/archive/2012/01/05/2312676.html