【发布时间】:2010-03-13 19:03:35
【问题描述】:
昨天我posted this question 关于在 Join() 方法中使用 lambdas 来检查 2 个条件是否存在于 2 个实体中。我收到了关于这个问题的答案,效果很好。在阅读有关 Enumerable.Join() 方法的 MSDN 文章后,我想我会确切地了解发生了什么,但我不知道。有人可以帮我理解下面的代码中发生了什么(特别是 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())
{
//...
}
编辑: 具体来说,我很好奇最后 3 个参数,以及实际发生了什么。它们如何导致 Func(TOuter, TKey)、Func(TInner, TKey) 等的签名要求。
【问题讨论】: