Ho una tabella e voglio fare quanto segue nel lavoro sulla struttura delle entità:
1- Restituire alcune colonne dall'oggetto non tutte le colonne (ho creato una nuova classe per questo nuovo tipo contengono solo le colonne di cui ho bisogno e restituisco i valori in essa nell'istruzione select.
2- Le colonne di restituzione devono essere raggruppate per alcune colonne e due di queste colonne conterranno il valore di conteggio. (che è la mia domanda).
Per ulteriori chiarimenti: ho bisogno di mappare la seguente query sull'oggetto querable del mio set di dati in Entity Framework:
select SUM (Col1) SUM_Col1, SUM (Col2) SUM_Col2, COUNT (*) RECORDS, Col3, Col4, Col5
from myTable
where col3 = 'some value'
group by Col3, Col4, Col5;
La mia prova per il raggruppamento era la seguente:
query = from record in context.tables
group record by new
{
record.Col3,
record.Col4,
record.Col5,
} into g
select new QueryResult
{
Col1 = (need Sum of Col1 here),
Col2 = (need Sumn of Col2 here),
Col3 = g.Key.Col3,
Col4 = g.Key.Col4,
Col5 = g.Key.Col5,
Col6 = ( need count of grouped records here)
};
query = from record in context.tables
group record by new
{
record.Col3,
record.Col4,
record.Col5,
} into g
select new QueryResult
{
Col1 = g.Sum(x => x.Col1),
Col2 = g.Sum(x => x.Col2),
Col3 = g.Key.Col3,
Col4 = g.Key.Col4,
Col5 = g.Key.Col5,
col6 = g.Count()
};
Prova questa query:
var query = context.tables.GroupBy(r=>new{r.Col3, r.Col4, r.Col5})
.Select(g=>{
Col1 = g.Sum(c=>c.Col1),
Col2 = g.Sum(c=>c.Col2),
Col3 = g.Key.Col3,
Col4 = g.Key.Col4,
Col5 = g.Key.Col5,
Col6 = g.Count
})