[c#]连接 Linq 查询的结果

标签: Linq .Net C#
发布时间: 2017/2/28 21:13:43
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我想知道是否有人可以帮助我,我有的问题,我不能在连接字符串中使用 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 到实体不承认 ' System.String tostring () 方法,方法,此方法不能转化为一个存储表达式。

解决方法 1:

您已经选择的集合,这些字符串与 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());
官方微信
官方QQ群
31647020