Sto utilizzando LINQ-to-Entities e vorrei eseguire un pivot.Pivoting in Linq
Per exampe, ho questa tabella:
| data1 | data2 |
+-------+-------+
| 1 | A |
| 1 | B |
| 2 | P |
| 2 | Q |
| 2 | R |
+---------------+
E voglio ruotare nei seguenti risultati:
| data1 | first | second | third |
+-------+-------+--------+-------+
| 1 | A | B | NULL |
| 2 | P | Q | R |
+--------------------------------+
mi piacerebbe farlo in LINQ, senza bisogno di fare elaborazione lato client.
Ho visto questi messaggi SO, ma essi non affrontano abbastanza la situazione di cui sopra (per quanto posso dire).
Nota Ho provato il seguito, ma si lamenta che non posso usare Skip() su una collezione non ordinata, e non fare vedere un modo per ottenere le informazioni "dati2" compresse del gruppo ordinate.
from item in MyTable
group item by item.data1 into g
select new
{
data1 = g.Key,
first = g.Skip(0).FirstOrDefault().data2,
second = g.Skip(1).FirstOrDefault().data2,
third = g.Skip(2).FirstOrDefault().data2,
};
Il secondo è un duplicato più vicino di questo: [is-it-possible-to-pivot-data-using-linq] (http: // stackoverflow.it/questions/167304/is-it-possible-to-pivot-data-using-linq) – nawfal