Quando si esegue una query sfruttando LINQ to Entities o Entity SQL, Entity Framework prima effettua la query ed una volta ottenuti i risultati verifica se l'oggetto ritrovato è già presente in memoria. Per default, se l'oggetto già è stato caricato, quello letto dal database viene scartato. Questo a volte è uno spreco di risorse in quanto si potrebbe prima cercare l'oggetto in memoria e poi sul database.
Per fare questo possiamo utilizzare il metodo GetObjectByKey che accetta in input una EntityKey e ricerca appunto l'oggetto prima in memoria e poi sul database.
var key = new EntityKey("Customers", "CustomerId", 1); var customer = ctx.GetObjectByKey(key);
La classe EntityKey accetta come parametri il nome dell'EntitySet, il nome della proprietà che fa da primary key ed il suo valore. Il metodo GetObjectByKey è invece molto semplice.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Persistere la ChatHistory di Semantic Kernel in ASP.NET Core Web API per GPT
Filtering sulle colonne in una QuickGrid di Blazor
Change tracking e composition in Entity Framework
Utilizzare la funzione EF.Parameter per forzare la parametrizzazione di una costante con Entity Framework
Ottimizzare il mapping di liste di tipi semplici con Entity Framework Core
Filtrare i dati di una QuickGrid in Blazor con una drop down list
Generare velocemente pagine CRUD in Blazor con QuickGrid
Utilizzare EF.Constant per evitare la parametrizzazione di query SQL
Utilizzare il metodo IntersectBy per eseguire l'intersection di due liste
Usare le navigation property in QuickGrid di Blazor
Utilizzare QuickGrid di Blazor con Entity Framework
Utilizzare il metodo CountBy di LINQ per semplificare raggruppamenti e i conteggi
I più letti di oggi
- Utilizzare il metodo IntersectBy per eseguire l'intersection di due liste
- Utilizzare StartsWith ed EndsWith con Span
- Utilizzare l nesting nativo dei CSS
- Microsoft lancia il nuovo tool gratuito 'ASP.NET Web Matrix Project'
- Managed deployment strategy in Azure DevOps
- Forzare l'apertura di un file fuori dal browser
- Configurare e gestire sidecar container in Azure App Service