web-dev-qa-db-fra.com

jointure linq à sql sur plusieurs colonnes en utilisant lambda

Quelqu'un peut-il m'aider à traduire ceci

var query = from s in context.ShoppingMalls
join h in context.Houses
on
new { s.CouncilCode, s.PostCode }
equals
 new { h.CouncilCode, h.PostCode }
select s;

en requête lambda?

Merci.

25
spdro
var query = context.ShoppingMalls
                   .Join(
                       context.Houses,
                       s => new { s.CouncilCode, s.PostCode },
                       h => new { h.CouncilCode, h.PostCode },
                       (s, h) => s);
47
Thomas Levesque

Bien que l'exemple et la réponse donnés par @Thomas Levesque fonctionnent pour les colonnes qui correspondent, je voulais également fournir la réponse si vous avez des colonnes à joindre mais qu'elles ont des noms différents. C'est ce dont j'avais besoin pour ma recherche sur Google et cette question m'a rapproché.

La différence est bien sûr la déclaration explicite des colonnes en tant que variable à identifier.

var query = context.MapKitsToResources
              .Join(
                     context.Resources, 
                     o => new { Id = o.ResourceId, Type = o.ResourceTypeId},
                     i => new { Id = i.Id, Type = TypeId},
                     (o, i) = new { rType : i };
9
JoeCo