Fino alla versione 2.2, Entity Framework risolve le query con Include verso una collection navigation property utilizzando un query per ogni proprietà e non creando un unico comando SQL. Questo comportamento ha il vantaggio di diminuire sensibilmente la quantità di viaggi che navigano tra l'applicazione e il database, ma al tempo stesso apre la possibilità al recupero di dati incongruenti in quanto tra una query e l'altra i dati possono essere modificati.
Per ovviare a questo problema, con Entity Framework 3 il comportamento è stato modificato per eseguire tutte le query con un solo comando SQL. Questo cambio ha però introdotto un problema in quanto le query con molte Include hanno subito un notevole rallentamento dovuto all'enorme quantità di dati ritrovati.
Entity Framework 5 introduce una nuova funzionalità che permette all'utente di decidere, a livello di query, quale tecnica utilizzare per risolvere le Include. Per default, viene utilizzata una unica query come in Entity Framework 3, ma tramite il metodo AsSplitQuery possiamo decidere unvece di usare query separate.
using (var context = new MyContext())
{
var people = context.People
.Include(p => p.Addresses)
.AsSplitQuery()
.ToList();
}In questo esempio, viene eseguita una query per recuperare le persone e un'altra per gli indirizzi.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Esporre i propri servizi applicativi con Semantic Kernel e ASP.NET Web API
Recuperare le subissue e il loro stato di completamento in GitHub
Supportare la crittografia di ASP.NET Core con Azure Container App
Documentare i servizi REST con Swagger e OpenAPI con .NET 9
Integrare modelli AI in un workflow di GitHub
Proteggere l'endpoint dell'agente A2A delle Logic App
Evitare memory leaks nelle closure JavaScript
Definire il colore di una scrollbar HTML tramite CSS
Usare i settings di serializzazione/deserializzazione di System.Text.Json di ASP.NET all'interno di un'applicazione non web
Creare agenti facilmente con Azure AI Agent Service
Ottimizzare le performance usando Span<T> e il metodo Split
Creare una libreria CSS universale - Rotazione degli elementi


