Sembra che GetObjectKey abbia il vantaggio di cercare oggetti esistenti e istanziati e POI l'archivio dati. Tuttavia, sembra che anche come si perde un po 'della tipizzazione forte, e la necessità di lanciare la vostra oggetto risultante:Recuperare entità Entity Framework utilizzando una query LINQ o GetObjectKey?
GetObjectKey
int customerID = 1;
EntityKey key = new EntityKey("MyEntities.Customers", "CustomerID", customerID);
Customer customer = context.GetObjectByKey(key) as Customer;
vs. LINQ
int customerID = 1;
Customer customer = (from c in context.Customers
where c.CustomerID = customerID
select c).FirstOrDefault();
Personalmente, preferisco quest'ultima metodo, a causa della digitazione. Inoltre, il tuo DAL sarà abbastanza uniforme con tutti i metodi Get in fase di query, anche se questa è solo una preferenza personale.
Cosa usi ragazzi e ragazze?
Nel primo metodo userei la parola chiave "as" invece del cast. In questo modo se il risultato è nullo non genererà un'eccezione. La parola chiave come tenta di eseguire il cast del valore ma se non è il tipo corretto, ti dà invece nullo. Quindi avresti context.GetObjectByKey (chiave) come Cliente ;. –
Buon punto. Modificheremo l'esempio anche per il punteggio. –