用于创建PIVOT表的Linq查询 [英] Linq query for creating PIVOT table

查看:145
本文介绍了用于创建PIVOT表的Linq查询的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有三个表table1,table2和table3

I have three tables table1, table2 and table3

Table1                                                
Id  Data
1   Data1
2   Data2
3   Data3

Table2
Id  Meta data
1   Meta data1
2   Meta data2
"     "
"     "
"     "

Table 3
Id   Data ID  Meta Data ID      Value
1    Data1    Metadata1         Value1
2    Data1    Metadata2         Value2
3    Data2    Metadata1         Value3
4    Data2    Metadata2         Value4

我想通过使用LINQ查询联接这些表来创建数据透视表

I want to create a pivot table by joining these tables using LINQ queries

我的结果表应该是这样

Data   Metadata 1  Metadata2  ‘"""   and so on……
Data1  Value1      Value2     
Data2  Value3      Value4

什么是合适的linq查询,可能对我来说是解决方案?

What would be the appropriate linq query which may be solution for me to achieve the result?

推荐答案

您不能只是这样做吗?不需要花哨的linq

Can't you just do this? No fancy linq is necessary

var dict = new Dictionary<object, PivotedValue>();

foreach(var t in table3){
    if(!dict.ContainsKey(t.DataID)) dict.Add(t.DataID, new PivotedValue{DataID = t.DataID});
    dict[t.DataID].PivotedFields.Add(t.MetaDataID, t.Value);
}


class PivotedValue{

    object DataID {get;set;}
    Dictionary<object, object> PivotedFields {get;set;}

}

这篇关于用于创建PIVOT表的Linq查询的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆