在Linq中连接viewmodel内的列表?

在Linq中连接viewmodel内的列表?,linq,asp.net-mvc-4,lambda,Linq,Asp.net Mvc 4,Lambda,数据库结构是 课程表 Id Name 1 Linux 2 Apache 3 MySql 4 Python Id Name 1 LAMP 多课程 Id Name 1 Linux 2 Apache 3 MySql 4 Python Id Name 1 LAMP

数据库结构是

课程表

Id       Name     

1        Linux
2        Apache
3        MySql
4        Python
Id       Name      
1        LAMP
多课程

Id       Name     

1        Linux
2        Apache
3        MySql
4        Python
Id       Name      
1        LAMP
多进程稳定

 Id      MultiCourseId     CourseId   
 1           1               1
 2           1               2
 3           1               3
 4           1               4
Ouptut视图应该是

如何使用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
                                    });
可枚举项上的.Join与字符串.Join完全不同,后者是您要查找的

Courses = string.Join(",", x.MultiCourseDetails.Select(m => m.Course.Name))

以下查询适用于我的示例:

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))
            });
我使用的集合名称与您在问题中发布的表相关