Untuk memperluas jawaban sintaksis rantai ekspresi oleh Clever Human:
Jika Anda ingin melakukan hal-hal (seperti memfilter atau memilih) pada bidang dari kedua tabel yang disatukan - alih-alih hanya pada salah satu dari dua tabel tersebut - Anda bisa membuat objek baru dalam ekspresi lambda dari parameter terakhir ke metode Bergabung dengan metode menggabungkan kedua tabel tersebut, misalnya:
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 });
Bagian yang menarik adalah ekspresi lambda di baris 4 dari contoh itu:
(dc, d) => new { DealerContact = dc, Dealer = d }
... tempat kami membuat objek tipe anonim baru yang memiliki properti yang dicatat DealerContact dan Dealer, beserta semua bidangnya.
Kami kemudian dapat menggunakan bidang dari catatan tersebut saat kami memfilter dan memilih hasil, seperti yang ditunjukkan oleh sisa contoh, yang menggunakan dc_d
sebagai nama untuk objek anonim yang kami buat yang memiliki catatan DealerContact dan Dealer sebagai propertinya.