Hôm qua I posted this question liên quan đến việc sử dụng lambdas bên trong phương thức Join() để kiểm tra xem có 2 điều kiện tồn tại trên 2 thực thể hay không. Tôi đã nhận được câu trả lời cho câu hỏi, câu hỏi này đã hoạt động hoàn hảo. Tôi nghĩ sau khi đọc bài viết MSDN trên phương thức Enumerable.Join(), tôi sẽ hiểu chính xác những gì đã xảy ra, nhưng tôi thì không. Ai đó có thể giúp tôi hiểu những gì đang xảy ra trong các mã dưới đây (các Tham gia() phương pháp đặc biệt)? Cảm ơn trước.Trợ giúp Hiểu Enumerable.Join Phương pháp
if (db.TableA.Where(a => a.UserID == currentUser)
.Join(db.TableB.Where(b => b.MyField == someValue),
o => o.someFieldID,
i => i.someFieldID,
(o,i) => o)
.Any())
{
//...
}
Chỉnh sửa: Cụ thể, tôi tò mò về 3 thông số cuối cùng và những gì đang diễn ra. Làm thế nào để họ dẫn đến việc yêu cầu chữ ký của Func (TOuter, TKey), Func (thợ thiếc, TKey) vv
Vâng, tôi thực sự đã viết nó theo cách này trước đây, sau đó sau khi nhận ra rằng nó có thể được thực hiện bằng cách sử dụng phương thức Join sử dụng lambdas, tôi nghĩ rằng tôi sẽ thử thách bản thân mình. Tôi vẫn tin rằng cách này rõ ràng hơn, và có lẽ sẽ thực hiện giải pháp theo cách này, nhưng tôi muốn hiểu đầy đủ kỹ thuật khác trước. –
Trong ví dụ được cập nhật của bạn, không nên ủy quyền thứ hai (EntityType o) được ủy quyền (EntityType i)? –
Vâng, cảm ơn Metro Smurf (Tôi không thể tin rằng hai từ đó xuất hiện từ cái khác đến lol). –