2009-02-19 6 views
0

J'ai trois tables table1, Table2 et table3requête Linq pour la création d'un tableau croisé dynamique

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 

Je veux créer un tableau croisé dynamique en se joignant à ces tables en utilisant des requêtes LINQ

Ma table de résultats devrait ressembler à ceci Quelle serait la requête linq appropriée qui pourrait être une solution pour moi pour atteindre le résultat?

Répondre

1

Ne pouvez-vous pas faire cela? Aucun linq de fantaisie n'est nécessaire

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;} 

} 
Questions connexes