连接Linq查询的结果

时间:2014-12-16 19:31:36

标签: c# .net linq

我想知道是否有人可以帮助我,我的问题是我无法使用Linq将结果返回到连接字符串中。查询工作正常,问题是如何将结果连接为字符串,字符串等,因为可以有许多哈希标记

var contacttag = (from HE in HashTagEntities
join t in Accounts on HE.Parentid equals t.id
where HE.ParentId == 3 &&
t.AccountName == "Test"
from tag in HashTags
where HE.HashTagid == tag.HOCODE
select new { tag.HashTagText }).Select(x => x.HashTagText.ToString());

如果有人可以提供帮助,我将不胜感激,我收到以下错误:

" LINQ to Entities无法识别方法' System.String ToString()'方法,并且此方法无法转换为商店表达式。"

1 个答案:

答案 0 :(得分:2)

您已经选择了select new { tag.HashTagText }字符串集合,因此无需再次选择它们或在其上调用.ToString()

您应该可以简单地使用string.Join()

var contacttag = from HE in HashTagEntities
                 join t in Accounts on HE.Parentid equals t.id
                 where HE.ParentId == 3 &&
                 t.AccountName == "Test"
                 from tag in HashTags
                 where HE.HashTagid == tag.HOCODE
                 select tag.HashTagText;

var tags = string.Concat(contacttag);

或在.NET 3.5中:

var tags = string.Concat(contacttag.ToArray());

我无法理解为什么人们会坚持在一个声明中这样做,但可以做到:

var tags = string.Concat((from HE in HashTagEntities
                 join t in Accounts on HE.Parentid equals t.id
                 where HE.ParentId == 3 &&
                 t.AccountName == "Test"
                 from tag in HashTags
                 where HE.HashTagid == tag.HOCODE
                 select tag.HashTagText).ToArray());