Ayer I posted this question con respecto al uso de lambdas dentro de un método Join() para comprobar si existen 2 condiciones en 2 entidades. Recibí una respuesta sobre la pregunta, que funcionó perfectamente. Pensé que después de leer el artículo de MSDN sobre el método Enumerable.Join(), entendería exactamente lo que estaba sucediendo, pero no es así. ¿Alguien podría ayudarme a entender qué está pasando en el siguiente código (el método Join() específicamente)? Gracias por adelantado.Ayuda Entender Enumerable.Join Método
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())
{
//...
}
Editar: Específicamente, siento curiosidad por los últimos 3 parámetros, y lo que en realidad está pasando. ¿Cómo se producen los requisitos de firma de Func (Touter, TKey), Func (TInner, TKey), etc.
Sí, de hecho lo escribí de esta manera anteriormente, luego de darme cuenta de que se podía lograr usando el método Join usando lambdas, pensé que me desafiaría a mí mismo. Todavía creo que esta manera de ser más clara, y probablemente implementaré la solución de esta manera, pero primero quiero entender completamente la otra técnica. –
En su ejemplo actualizado, ¿no debería el segundo delegado (EntityType o) ser delegado (EntityType i)? –
Sí, gracias Metro Smurf (no puedo creer que esas dos palabras aparezcan una tras otra, jajaja). –