Il semble que GetObjectKey ait l'avantage de rechercher des objets instanciés existants, puis le magasin de données. Cependant, il semble aussi que vous perdez une partie de la forte frappe, et que vous devez jeter votre objet résultant:Récupérer des entités Entity Framework uniques en utilisant une requête LINQ ou GetObjectKey?
GetObjectKey
int customerID = 1;
EntityKey key = new EntityKey("MyEntities.Customers", "CustomerID", customerID);
Customer customer = context.GetObjectByKey(key) as Customer;
contre LINQ
int customerID = 1;
Customer customer = (from c in context.Customers
where c.CustomerID = customerID
select c).FirstOrDefault();
Personnellement, je préfère ce dernier méthode, à cause de la dactylographie. En outre, votre DAL sera assez uniforme avec toutes les requêtes Get étant des requêtes, bien que ce soit juste une préférence personnelle.
Qu'utilisez-vous, garçons et filles?
Dans la première méthode, j'utiliserais le mot-clé "as" au lieu de la distribution. De cette façon, si le résultat est nul, il ne lancera pas d'exception. Le mot clé as tente de convertir la valeur mais si ce n'est pas le bon type, il vous donne null à la place. Donc, vous auriez context.GetObjectByKey (clé) en tant que client ;. –
Bon point. Je vais modifier l'exemple pour égaliser un peu le score. –