Um die Expression Kette Syntax answer durch Clever Menschen zu erweitern:
Wenn Sie Dinge tun wollte (wie filter oder select) auf Felder aus beiden Tabellen zusammengefügt werden - stattdessen auf nur einer davon zwei Tabellen - Sie könnten ein neues Objekt in dem Lambda-Ausdruck des endgültigen Parameters auf die Join-Methode enthalten diese beiden Tabellen, zum Beispiel erstellen:
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, dass Beispiel:
(dc, d) => new { DealerContact = dc, Dealer = d }
... wo wir ein neues anonyme-Typ-Objekt erstellen, das die Händler suchen und Händleraufzeichnungen als Eigenschaften, zusammen mit all ihren Bereichen.
Wir können dann Felder verwenden, um von diesen Datensätzen, wie wir die Ergebnisse filtern und wählen Sie, wie durch den Rest des Beispiels demonstriert, die dc_d
als Name für das anonyme Objekt verwendet wir gebaut, die sowohl die Händler suchen und Händleraufzeichnungen hat als seine Eigenschaften.
Sie können [SQL-Abfragen in LINQ] (http://www.codeducky.org/sql-queries-in-linq/#inner-join) hilfreich finden.Es wird erläutert, wie gängige SQL-Abfragen, einschließlich innerer Joins, in die LINQ-Syntax konvertiert werden. –
Wenn Sie einen Fremdschlüssel zwischen den Tabellen haben, sollten Sie unten Kirk Broadhurst Antwort suchen. – Guilherme
Sie sollten Ihre Tabellennamen pluralieren. Ein Tisch, der viele Händler enthält, sollte als * Händler * und nicht als Händler bezeichnet werden. – ANeves