linQ如何合并同一列的数据
现在有一张表
FROM TO TIME BODY
A B 11/11 1111
A B 11/11 2222
A B 11/12 3333
A B 11/12 4444
怎么样才能得出
FROM TO NUM TIME BODY
A B 2 11/11 1111,2222
A B 2 11/12 3333,4444
这样的结果呢=. =
LinQ里面group后面好像只能写一个字段...还不能合并列的内容..
------最佳解决方案-------------------- var query=db.YourTable.ToList().GroupBy(t=>new{t.FROM,t.To,t.Time})
.Select(g=>new {FROM=g.Key.From,TO=g.Key.To,NUM=g.Count(),Time=g.Key.Time,Body=string.Join(",",g.Select(s=>s.Body).ToArray())})
------其他解决方案-------------------- 本帖最后由 q107770540 于 2012-11-09 10:58:51 编辑
var query=db.YourTable.GroupBy(t=>new{t.FROM,t.To,t.Time})
.Select(g=>new {FROM=g.Key.From,TO=g.Key.To,NUM=g.Count(),Time=g.Key.Time,Body=string.Join(",",g.Select(s=>s.Body).ToArray())}) ------其他解决方案-------------------- VB.NET与C#的写法区别,参考我的另一篇blog:
http://blog.csdn.net/q107770540/article/details/7629681
------其他解决方案-------------------- 引用: 本帖最后由 q107770540 于 2012-11-09 10:58:51 编辑
Body=string.Join(",",g.Select(s=>s.Body).ToArray())
=. =他说不识别string join 的方法
base {System.SystemException} = {"LINQ to Entities 不识别方法“System.String Join(System.String, System.String[])”,因此该方法无法转换为存储表达式。"}
------其他解决方案-------------------- 引用: var query=db.YourTable.ToList().GroupBy(t=>new{t.FROM,t.To,t.Time})
.Select(g=>new {FROM=g.Key.From,TO=g.Key.To,NUM=g.Count(),Time=g.Key.Time,Body=string.Join(",",g.Select(s=……
我弱爆了.....