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

时间:2013-05-28 12:32:09

标签: c# entity-framework linq-to-entities ef-code-first

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

SubjectID      StudentName
---------      -------------
 1             Peter
 2             Paul
 2             Mary

是否有一种简单的方法可以将其转换为实体框架中的单个字符串?像这样的东西:

SubjectID       StudentName
----------      -------------
1               Peter
2               Paul, Mary

检查this link以获取更多信息。

1 个答案:

答案 0 :(得分:6)

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

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

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