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