So erweitern Sie die Antwort der Ausdruckskettensyntax von Clever Human:
Wenn Sie Dinge (wie Filtern oder Auswählen) für Felder aus beiden Tabellen tun möchten, die zusammengefügt werden sollen - statt nur für eine dieser beiden Tabellen -, können Sie ein neues Objekt im Lambda-Ausdruck des letzten Parameters für die Join-Methode erstellen Einbeziehen dieser beiden Tabellen, zum Beispiel:
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 dieses Beispiels:
(dc, d) => new { DealerContact = dc, Dealer = d }
... wo wir ein neues Objekt vom anonymen Typ erstellen, dessen Eigenschaften die DealerContact- und Dealer-Datensätze sowie alle ihre Felder sind.
Wir können dann Felder aus diesen Datensätzen verwenden, während wir die Ergebnisse filtern und auswählen, wie der Rest des Beispiels zeigt, das dc_d
als Namen für das von uns erstellte anonyme Objekt verwendet wird, dessen Eigenschaften sowohl die DealerContact- als auch die Dealer-Datensätze enthalten.