J'essaie de comprendre les jointures externes gauche dans LINQ à Entity. Par exemple, j'ai les 3 tableaux suivants:Linq to Entity avec plusieurs jointures externes à gauche
Company, CompanyProduct, Produit
Le CompanyProduct est lié à ses deux tables parent, société et du produit.
Je souhaite retourner tous les enregistrements de la société et le CompanyProduct associé, que le produit de la société existe ou non pour un produit donné. Dans Transact SQL je passer de la table de l'entreprise à l'aide extérieure gauche rejoint comme suit:
SELECT * FROM Company AS C
LEFT OUTER JOIN CompanyProduct AS CP ON C.CompanyID=CP.CompanyID
LEFT OUTER JOIN Product AS P ON CP.ProductID=P.ProductID
WHERE P.ProductID = 14 OR P.ProductID IS NULL
Ma base de données dispose de 3 entreprises et 2 records CompanyProduct assocaited avec le ProductID 14. Ainsi, les résultats de la requête SQL sont les 3 lignes attendues, dont 2 sont connectées à un CompanyProduct et Product et 1 qui a simplement la table Company et null dans les tables CompanyProduct et Product.
Alors, comment écrivez-vous le même type de jointure dans LINQ to Entity pour obtenir un résultat similaire?
J'ai essayé plusieurs choses mais je n'arrive pas à obtenir la syntaxe correcte.
Merci.
'.Select (e => e)' est un no-op, et peut être retiré. Bien sûr, si vous n'utilisez que l'ID, pourquoi ne pas dire '.Select (e => e.id)'? – StriplingWarrior