在Entity框架中将许多行连接成单个文本字符串

Hos*_*nia 2 c# linq-to-entities entity-framework ef-code-first

考虑一个包含三个行的名称的数据库表:

SubjectID      StudentName
---------      -------------
 1             Peter
 2             Paul
 2             Mary
Run Code Online (Sandbox Code Playgroud)

有没有一种简单的方法可以将其转换为实体框架中的单个字符串?这样的事情:

SubjectID       StudentName
----------      -------------
1               Peter
2               Paul, Mary
Run Code Online (Sandbox Code Playgroud)

查看此链接以获取更多信息.

Dav*_*New 7

您可以使用GroupBy按主题对学生进行分组:

var result = StudentSubjects
                .GroupBy(x => x.SubjectID)
                .Select(x => new 
                    { 
                        Subject = x.Key, 
                        Names = String.Join(", ", x.Select(n => n.Name)) 
                    });
Run Code Online (Sandbox Code Playgroud)

我使用String.Join来连接名称列表.

  • 我收到错误 LINQ to Entities 无法识别方法“System.String Join” (6认同)