Nello script #420 abbiamo visto come utilizzare il metodo Include per precaricare un grafo di oggetti collegati in una singola query con Entity Framework Core. Questa tecnica è efficace ma il caricamente del grafo viene invalidato nel momento in cui terminiamo la query con un comando Select il cui risultato è diverso dalla classe da cui siamo partiti per eseguire la query. Prendiamo come esempio le seguenti query.
var orders1 = ctx.Order.Include(o => o.Customer).ToList(); var orders2 = ctx.Order.Include(o => o.Customer) .Select(o => new { o.id, o.OrderDate, o.Customer.Id });
La prima query usa Include per caricare in una sola query l'oridne e il cliente. La seconda query ignora Include in quanto il tipo restituito è un tipo anonimo. In questi casi il compilatore solleva un warning, ma possiamo anche fare in modo che venga sollevata un'eccezione usando il metodo ConfigureWarnings in fase di configurazione del DbContext.
protected override void OnConfiguring (DbContextOptionsBuilder optionsBuilder) { optionsBuilder .ConfigureWarnings(warnings => warnings.Throw(CoreEventId.IncludeIgnoredWarning)); }
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Eliminare una project wiki di Azure DevOps
Effettuare il refresh dei dati di una QuickGrid di Blazor
Gestire il colore CSS con HWB
Utilizzare QuickGrid di Blazor con Entity Framework
Change tracking e composition in Entity Framework
Rendere i propri workflow e le GitHub Action utilizzate più sicure
Utilizzare una qualunque lista per i parametri di tipo params in C#
Anonimizzare i dati sensibili nei log di Azure Front Door
Utilizzare EF.Constant per evitare la parametrizzazione di query SQL
Utilizzare Hybrid Cache in .NET 9
Usare il colore CSS per migliorare lo stile della pagina
Aggiornare a .NET 9 su Azure App Service
I più letti di oggi
- #IE10 disponibile al download da subito: http://aspitalia.com/vf http://aspitalia.com/mix-11 #mix11
- #ie10 supporta il multitouch anche in #Javascript. http://aspitalia.com/build-win8 #BldWin
- stiamo per partire con #aspilive .NET Serverless Day, con @dbochicchio, @cristiancivera e @kasukenhttps://aspit.co/ServerlessDay #azure #aws #serverless #dotnet
- vuoi costruire applicazioni web in real time? non perdere il nostro speciale! https://aspit.co/aln #signalr #websockets #polling #aspnet
- finiamo con @itsonlyGianca e #Windows10 iot core e #raspberrypi2 con #VS2015 su #aspilive: https://aspit.co/VS2015-live
- #Windows10 #iot core è ora disponibile al download per #RaspberryPI2 e #MinnowBoardMAX: https://aspit.co/a6a