Вчера я разместил этот вопрос относительно использования lambdas внутри метода Join(), чтобы проверить, существует ли 2 условия для двух объектов. Я получил ответ на вопрос, который работал отлично. Я подумал, прочитав статью MSDN по методу Enumerable.Join(), я бы точно понял, что происходит, но я этого не делаю. Может ли кто-нибудь помочь мне понять, что происходит в приведенном ниже коде (метод Join())? Спасибо заранее.
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())
{
//...
}
Изменить: В частности, мне интересно узнать о последних трех параметрах и о том, что происходит на самом деле. Как они приводят к требованиям подписи Func (TOuter, TKey), Func (TInner, TKey) и т.д.