【发布时间】:2013-12-04 14:52:55
【问题描述】:
使用 WCF RIA 我有一个返回名称查询的查询
public class WitnessInfo
{
[Key]
public Guid WCFId { get; set; }
public string witnessName { get; set; }
public string AllNames {get; set;}
}
这是我的 Linq 查询
[Query]
public IQueryable<WitnessInfo> getWitnessInfo(int? id)
{
IQueryable<WitnessInfo> witnessQuery = from witness in this.Context.witness
where witness.DAFile.Id == id
select new WitnessInfo
{
WCFId = Guid.NewGuid(),
witnessName = witness.Person.FirstName,
};
return witnessQuery;
}
我想获取所有名称并将它们返回到一个字符串中,即“John,James,Tim,Jones”。尝试使用 AllNames 并循环,但这没有用。有什么建议吗?
【问题讨论】:
-
在哪里所有这些名字都在哪里?在
AllNames? -
可以使用
AggregateLINQ方法,也可以使用string.Join(", ", yourQuery.Select(i => i.WitnessName).ToArray()) -
@JeroenVannevel 是的,我想在 AllNames 中添加所有名称
-
@Luaan 从 .NET 4.0 开始,情况并非如此。
Join接受IEnumerable<string>。 -
@Servy:哦,酷,我不知道。我仍然需要在 ASP.NET 2.0 堆栈上工作,所以我坚持使用 .NET 3.5。在这种情况下,在 4.0+ 上,您的观点是完全有效的,并且您的方法更好。此外,我们似乎都忽略了这一点——这两种方法都不能在数据库服务器上的 IQueryable 中使用——它们需要你首先获取所有数据,这可能不是 OP 想要的。