在LINQ查询中使用string.Join的替代方法?

时间:2010-06-28 17:08:25

标签: .net linq linq-to-sql

任何时候我使用下面的代码都会引发错误:

  

方法'System.String   加入(System.String,   System.Collections.Generic.IEnumerable`1 [System.String])”   没有受支持的SQL翻译。

        var items = from t in fc.table
                    where t.id== objId
                    select new
                    {
                        t.id,
                        t.name,
                        string.Join(...)
                    };

我尝试使用LINQ Aggregate方法,但遇到了类似的错误。关于如何获取string.Join功能而没有错误的任何建议?

此外,此代码编译良好。当我尝试对项目执行某些操作时会抛出错误。

1 个答案:

答案 0 :(得分:1)

强制查询首先在客户端上运行,提取原始数据,然后将字符串连接到内存中:

    var items = from a in (from t in fc.table
                           where t.id== objId
                           select new
                           {
                               t.id,
                               t.name,
                               t.a, t.b, t.c
                           }).AsEnumerable()
                select new
                {
                    a.id, 
                    a.name, 
                    string.Join(",", new[] { a.a, a.b. a.c })
                };