从 EntitySet 中提取逗号分隔字符串
本文关键字:分隔 字符串 提取 EntitySet | 更新日期: 2023-09-27 18:33:38
如何将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
});
您必须
从tblCaseNoteContactTypes
中选择要连接的列
ContactType = string.Join(", ",
cn.tblCaseNoteContactTypes.Select(x => x.MyColumn))
在
LINQ 查询的末尾追加.ToArray();
,并将其用作String.Join()
的参数
String.Join(", ", yourLinqQuery.ToArray());
为此,LINQ 查询必须返回一个字符串,以便 Array 是字符串数组。或者具有与所需内容匹配的ToString()
的对象。
String.Join(string, object[](
编辑:当您添加新信息时:
如果 tblCaseNotesContactType 是一个对象,则需要在.ToArray()
之前添加一个.Select(t -> {return t converted to string})
检查是否为空?
ContactType = cn.tblCaseNoteContactTypes.Any() ? string.Join(", ", cn.tblCaseNoteContactTypes.ToArray()) : String.Empty
也
tblCaseNoteContactTypes
如果此集合的成员不是字符串,Join
会遇到一些麻烦。