如何将EntitySet<>
转换为字符串?即(鲍勃,乔,弗兰克)?
在下面的LINQ ContactType
是一个单独的表,可以有很多值。我试图将其转换为逗号分隔的字符串。
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
});
答案 0 :(得分:2)
您必须从tblCaseNoteContactTypes
中选择要连接的列
ContactType = string.Join(", ",
cn.tblCaseNoteContactTypes.Select(x => x.MyColumn))
答案 1 :(得分:1)
在LINQ查询的末尾附加.ToArray();
,并将其用作String.Join()
的参数
String.Join(", ", yourLinqQuery.ToArray());
为此,LINQ查询必须返回一个字符串,以便Array是一个字符串数组。或者具有与您想要的匹配的ToString()
的对象。
编辑:当您添加新信息时:
如果tblCaseNotesContactTypes是一个对象,则需要在.Select(t -> {return t converted to string})
之前添加.ToArray()
答案 2 :(得分:0)
检查是否为空?
ContactType = cn.tblCaseNoteContactTypes.Any() ? string.Join(", ", cn.tblCaseNoteContactTypes.ToArray()) : String.Empty
此外,
tblCaseNoteContactTypes
如果此集合的成员不是字符串,Join
将会遇到一些麻烦。