0

如何转换EntitySet<>为字符串?即(鲍勃,乔,弗兰克)?

在下面的 LINQContactType中是一个单独的表,可以有许多值。我正在尝试将其转换为逗号分隔的字符串。

var caseNotes =context.tblCaseNotes
                .Where(cn => cn.PersonID == personID)
                .OrderBy(cn => cn.ContactDate)
                .Select(cn => new
                            {
                                cn.ContactDate,
                                cn.ContactDetails,
                                cn.TimeSpentUnits,
                                cn.IsCaseLog,
                                cn.IsPreEnrollment,
                                cn.PresentAtContact,
                                ContactType = string.Join(", ", cn.tblCaseNoteContactTypes.ToArray()),
                                cn.InsertDate,
                                cn.InsertUser,
                                cn.CaseNoteID,
                                cn.ParentNote
                            });
4

3 回答 3

2

您必须选择tblCaseNoteContactTypes要连接的列

 ContactType = string.Join(", ", 
         cn.tblCaseNoteContactTypes.Select(x => x.MyColumn))
于 2012-05-08T21:20:47.327 回答
1

附加.ToArray();在 LINQ 查询的末尾,并将其用作参数String.Join()

String.Join(", ", yourLinqQuery.ToArray());

为此,您的 LINQ 查询必须返回一个字符串,以便 Array 是一个字符串数组。或具有ToString()与您想要的匹配的对象。

String.Join(字符串,对象[])

编辑:当您添加新信息时:

如果 tblCaseNotesContactTypes 是一个对象,则需要.Select(t -> {return t converted to string}).ToArray()

于 2012-05-08T21:17:14.973 回答
0

检查是否为空?

ContactType = cn.tblCaseNoteContactTypes.Any() ? string.Join(", ", cn.tblCaseNoteContactTypes.ToArray()) : String.Empty

还,

tblCaseNoteContactTypes

如果这个集合的成员不是字符串,Join将会有一些麻烦。

于 2012-05-08T21:17:53.763 回答