多表+聚合可以实现吗?sqlsugar 返回
假设A表是班级表。有班级名,班级ID。
B表是学生表。有班级ID,学生ID,学生名。
最终想查询出这样一个数据
[
{
"classId": 1,
"className": "七班",
"detail": [
{
"studentId": 101,
"studentName": "张三"
},
{
"studentId": 102,
"studentName": "李四"
}
]
},
{
"classId": 3,
"className": "二班",
"detail": [
{
"studentId": 521,
"studentName": "王五"
},
{
"studentId": 518,
"studentName": "赵六"
}
]
}
]
可以吗?应该如何去写?
我现在是这么写的:
var list = db.Queryable<Class, Student>((C, S) => new object[] {
JoinType.Left,C.Id==S.ClassId}
).Where((C, S) => C.Status == 1 && S.Status == 1)
.Select((C, S) => new { C, S }).GroupBy(a => new { a.C }).Select(a => new { a.C, a });
还能优化下吗?
热忱回答(5)
-
fate stay night VIP0
2020/10/14sqlfunc有聚合函数
0 回复 -
fate stay night VIP0
2020/10/14例如new{x=sqlfunc.xx(a .x)
0 回复 -
& VIP0
2020/10/14@fate stay night:sqlfunc聚合函数我看返回的应该是没有列表的。是有返回一条数据的
0 回复 -
fate stay night VIP0
2020/10/14你应该看这个功能 http://www.donet5.com/Home/Doc?typeId=1188 实现多级的查询
0 回复 -
& VIP0
2020/10/14@fate stay night:好的,谢谢。这个里面的一对多功能可以实现需求。
0 回复