Để mở rộng câu trả lời cú pháp chuỗi biểu thức của Clever Human:
Nếu bạn muốn thực hiện mọi thứ (như bộ lọc hoặc chọn) trên các trường từ cả hai bảng được nối với nhau - thay vì chỉ một trong hai bảng đó - bạn có thể tạo một đối tượng mới trong biểu thức lambda của tham số cuối cùng cho phương thức Tham gia kết hợp cả hai bảng đó, ví dụ:
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 });
Phần thú vị là biểu thức lambda trong dòng 4 của ví dụ đó:
(dc, d) => new { DealerContact = dc, Dealer = d }
... nơi chúng tôi xây dựng một đối tượng kiểu ẩn danh mới có các thuộc tính như các bản ghi DealerContact và Dealer, cùng với tất cả các trường của chúng.
Sau đó, chúng ta có thể sử dụng các trường từ các bản ghi đó khi chúng ta lọc và chọn kết quả, như được minh họa bằng phần còn lại của ví dụ, sử dụng dc_d
làm tên cho đối tượng ẩn danh mà chúng ta đã tạo có cả bản ghi DealerContact và Dealer làm thuộc tính của nó.