Sto cercando di definire un modo standard per raggruppare per anno, per mese, per giorno, per ora, ecc ...Entity Framework. Gruppo SQL Da Gruppo EF Da
Leggendo alcuni documenti SQL sembra il modo più efficiente sarebbe quella di utilizzare:
GROUP BY dateadd(month, datediff(month, 0, CreatedDate), 0)
Annotare il "mese", "anno", ...
ho poi cercato di replicare questo utilizzando:
.GroupBy(x => SqlFunctions.DateAdd("month", SqlFunctions.DateDiff("month", 0, x.Created), 0))
.GroupBy(x => EntityFunctions.AddMonths(EntityFunctions.DiffMonths(0, x.Created)))
Tuttavia, entrambe le espressioni non sono riuscite a compilare ...
E non sono sicuro se questo è il modo di farlo?
Come posso replicare correttamente quella riga di codice SQL in EF?
Sì, ho funzionato. Ma se non sbaglio, uso qualcosa che ho pubblicato ha una performance migliore, no? Stavo leggendo il seguente: http://weblogs.sqlteam.com/jeffs/archive/2007/09/10/group-by-month-sql.aspx ... –
Questo è il modo che stavo cercando di trovare un modo per replicare quel codice SQL utilizzando EntityFunctions ... E allo stesso tempo creare un modo standard per raggruppare per anni, per mesi, per giorni, per ore, ... Avrei solo bisogno di cambiare AddYears per AddMonths, per ... –
Non ha alcun vantaggio in termini di prestazioni. Il post che hai collegato afferma semplicemente che è più facile lavorare con Sql. Non vedo che ci sia un grosso vantaggio in questo modo con Entity Framework. .NET non ha le stesse limitazioni di Sql. – cadrell0