Ricercare un oggetto prima in memoria e poi sul database con Entity Framework

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.

IL CONTENUTO
IN PRIMO PIANO
MEDIA
IN EVIDENZA
MISC