【发布时间】:2019-01-29 23:06:59
【问题描述】:
我目前的项目中有这段代码
public Expression<Func<MyObject, object>> CreateSelectExp(a, b)
{
return x => new
{
x.Id,
x.Status,
x.DateCreated,
x.Theme,
Message = MergeMessage(db, x.Id)
};
}
private IQueryable<string> MergeMessage(ConnectTo db, Guid id)
{
return db.MsgHistory
.Where(s => s.FK_MsgHistory_MsgID.Id == id)
.Where(s => !string.IsNullOrEmpty(s.Message))
.Select(s => String.Join(Environment.NewLine, s.Message));
}
我得到的是 IQueryable,它最终(在客户端)看起来像 ["Text One","Text Two", "Text Three"],但我需要的是一个像 Text One, Text Two, Text Three 这样的字符串。因为我在CreateSelectExp() 中有一个 SQL 表达式字符串,所以我无法在其中获取任何 List() 或 Array()。
我读过关于聚合的文章,但我所有的尝试都没有结果。所以问题是如何用 linq 表达式获得一个合并的字符串?
【问题讨论】:
-
String.Join(Environment.NewLine, s.Message)的意义何在?我很好奇,除了s.Message,它什么时候返回?
标签: c# sql linq expression