前提:
数据库中有这样两个表:User和Score表。
User
id name 班级 年龄
1 Young 一班 25
2 Hong 二班 24
Score
id userId course score
10 1 数据结构 100
11 1 高等数学 90
12 2 数据结构 95
13 2 高等数学 85
当前我通过这样一句linq语句联查:
(from u in User join s in Score
on u.id equals s.userId
select MapToEntity(u,s)).ToList());
private User MapToEntity(User u, Score s){
u.score = s;
return u;
}
联查后得出的结果是这样的:
{
User{
Young,一班,25,
Score{
10,1,数据结构,100
}
},
User{
Young,一班,25,
Score{
11,1,高等数学,90
}
},
User{
Hong,二班,24,
Score{
12,2,数据结构,95
}
},
User{
Hong,二班,24,
Score{
13,2,高等数学,85
}
}
}
问题
如何通过Linq搜索可以得出这样的结果:
{
User{
Young,一班,25,
Score{
10,1,数据结构,100
},
Score{
11,1,高等数学,90
}
},
User{
Hong,二班,24,
Score{
12,2,数据结构,95
},
Score{
13,2,高等数学,85
}
}
}
我定义的类和你的不同:
思路是先对分数按照
UserId
进行分组,然后再与User
进行连接操作。输出为:
代码:
到 Ubuntu Pastebin 查看