So erweitern Sie die Syntax der Ausdruckskette Antwort von Clever Human:
Wenn Sie Dinge (wie Filtern oder Auswählen) an Feldern aus beiden Tabellen, die zusammengefügt werden, tun wollten - statt nur an einer dieser beiden Tabellen - könnten Sie ein neues Objekt im Lambda-Ausdruck des letzten Parameters der Join-Methode erstellen, das beispielsweise beide Tabellen enthält:
var dealerInfo = DealerContact.Join(Dealer,
dc => dc.DealerId,
d => d.DealerId,
(dc, d) => new { DealerContact = dc, Dealer = d })
.Where(dc_d => dc_d.Dealer.FirstName == "Glenn"
&& dc_d.DealerContact.City == "Chicago")
.Select(dc_d => new {
dc_d.Dealer.DealerID,
dc_d.Dealer.FirstName,
dc_d.Dealer.LastName,
dc_d.DealerContact.City,
dc_d.DealerContact.State });
Der interessante Teil ist der Lambda-Ausdruck in Zeile 4 des Beispiels:
(dc, d) => new { DealerContact = dc, Dealer = d }
...wo wir ein neues Objekt vom anonymen Typ konstruieren, das als Eigenschaften die Datensätze DealerContact und Dealer mit all ihren Feldern hat.
Wir können dann Felder aus diesen Datensätzen verwenden, um die Ergebnisse zu filtern und auszuwählen, wie im weiteren Verlauf des Beispiels gezeigt wird, in dem dc_d
als Name für das anonyme Objekt, das wir erstellt haben und das sowohl den DealerContact- als auch den Dealer-Datensatz als Eigenschaften hat.