Dbstructure
CourseTable
Id Name
1 Linux
2 Apache
3 MySql
4 Python
MultiCourseTable
Id Name
1 LAMP
MultiCourseDetailsTable
Id MultiCourseId CourseId
1 1 1
2 1 2
3 1 3
4 1 4
Ouptut View应
Name Courses
LAMP Linux,Apache,MySql,Python
如何使用Linq实现上述功能。我尝试过以下但未能得到理想的结果。
var _dTableMultiCourse = _db.MultiCourses
.Where(x => Id == 0 || x.Id == Id)
.AsEnumerable()
.Select(x => new
{
SlNo = "",
Title = x.CourseSubTitle.Name,
Courses = x.MultiCourseDetails
.Select(m=>m.Course.Name)
.Join(','),
Id = x.Id
});
答案 0 :(得分:0)
.Join
与string.Join
完全不同,这是您正在寻找的内容。
Courses = string.Join(",", x.MultiCourseDetails.Select(m => m.Course.Name))
答案 1 :(得分:0)
以下查询适用于我的示例:
var res = multiCourseDetails.GroupBy(k => k.MultiCourseID)
.Select(t => new
{
Name = multiCourses
.FirstOrDefault(q => q.MultiCourseID == t.Key).Name,
Courses = string.Join(", ", t.Join(courses, q => q.CourseID, w => w.CourseID, (r, y) => y.Name))
});
我使用的集合的名称与您在问题中发布的表格相关。