Normalmente, quando si usa l'operatore GroupBy per raggruppare i dati di una query, si utilizza in seguito un operatore Select per decidere quali dati restituire al client.
A partire da Entity Framework 7, possiamo utilizzare GroupBy anche come ultima istruzione di una query LINQ. In questo caso, EF si comporta in modo particolare, rispetto a quanto ci si potrebbe aspettare, ma, perfettamente regolare. Entity Framework non traduce la GroupBy LINQ in una group by SQL, ma in una normale select e una volta scaricati i dati li raggruppa sul client.
Prendiamo il seguente esempio.
var query = context.Person.GroupBy(s => s.LastName);
In questo caso, stiamo cercando tutti i dati di tutte le persone nella tabella e vogliamo che queste persone siano raggruppate in base al cognome. Un raggruppamento del genere causerebbe la restituzione di tutti i record della tabella in quanto nei campi restituiti è compreso anche l'id rendendo quindi inutile l'utilizzo di una group by. Per questo motivo Entity Framework genera la seguente query SQL.
SELECT [a].[Id], [a].[LastName], [a].[FirstName], [a].[BirthDate] FROM People AS [a] ORDER BY [a].[LastName]
Fino alla versione 6, la query LINQ che abbiamo visto solleva un'eccezione in quanto il team non era sicuro di come implementare la funzionalità per paura che l'assenza di una group by avrebbe suscitato reazioni (erronee) da parte degli utilizzatori di Entity Framework . Durante lo sviluppo di Entity Framework 7, il team ha deciso di supportare questo nuovo pattern e di fornire un'apposita documentazione molto chiara per spiegare i motivi della scelta.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Utilizzo di CSS Scroll Snap per realizzare un carousel
Gestione dei prompt file a livello di organizzazione aziendale in GitHub
Gestione opzioni colonna nella Blazor QuickGrid
Eliminare record doppi in Sql Server
Response streaming con Blazor e .NET 10
Integrare Agenti A2A in Azure API Management
Configurare automaticamente un webhook in Azure DevOps
Come automatizzare il download dei report di billing da GitHub Enterprise
Semplificare la gestione dei modelli con Azure AI Foundry Model Router
Eseguire i pre-commit hook di git con dependabot
Gestire progetti NPM in .NET Aspire
Configurare OpenTelemetry per Application Insights su ASP.NET Core
I più letti di oggi
- Il valore degli agenti AI cresce davvero quando possono interagire in modo sicuro con dati, servizi e backend aziendali. In questa sessione parleremo di Model Context Protocol e di come usarlo nell'ecosistema Azure per trasformare i servizi che già utilizziamo in tool pronti per scenari agentici reali. Un appuntamento utile per chi vuole capire come rendere la propria architettura agent-ready, con il giusto equilibrio tra integrazione, governance e sicurezza. Ci vediamo a Milano al Global Azure 2026 - ASPItalia.com, con Cristian Civera. #GlobalAzure #Azure #MCP #AI #AIAgents https://aspit.co/globalazure-26
- Global Azure 2026 - ASPItalia.com - Milano




