#110 - Ricercare un oggetto prima in memoria e poi sul database con Entity Framework
di Stefano Mostarda, in LINQ, Entity Framework, 25 marzo 2009
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.
Approfondimenti
-
ModelVirtualCasting: un'applicazione completa per .NET Framework 4.0 e Silverlight 4.0
-
#rcd4 @sm15455 si occupa di #entityframework 4 e data strategies http://u.aspitalia.com/bw
-
#144 - Utilizzare il metodo ForEach di LINQ per eseguire un'azione su ogni oggetto di una lista
-
Architettura del software: l'object model per le applicazioni web
-
.NET Framework 4.0 Beta 1: Parallel FX
-
MetadataDiffViewer: aggiornato al .NET Framework 4.0, Silverlight 4.0 e Sharepoint 2010
-
Entity Framework e la generazione di codice POCO
-
#140 - Estrarre un elemento in una determinata posizione da una lista non indicizzata con LINQ
-
Template per generare classi POCO con Entity Framework 4.0
-
#164 - Eseguire una stored procedure tramite l'Entity Client di Entity Framework
-
#124 - Ottimizzare le Where con l'operatore Like in Entity Framework
-
Utilizzare Entity SQL per eseguire query in Entity Framework

















Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.