我想知道是否有人可以帮助我,我的问题是我无法使用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()'方法,并且此方法无法转换为商店表达式。"
答案 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());