@@ -435,13 +435,19 @@ public static IQueryable Join([NotNull] this IQueryable outer, [NotNull] IEnumer
435
435
Expression . Parameter ( outer . ElementType , "outer" ) , Expression . Parameter ( inner . AsQueryable ( ) . ElementType , "inner" )
436
436
} ;
437
437
438
- LambdaExpression resultsSelectorLambda = DynamicExpressionParser . ParseLambda ( createParameterCtor , parameters , null , resultSelector , args ) ;
438
+ LambdaExpression resultSelectorLambda = DynamicExpressionParser . ParseLambda ( createParameterCtor , parameters , null , resultSelector , args ) ;
439
439
440
440
return outer . Provider . CreateQuery (
441
441
Expression . Call (
442
442
typeof ( Queryable ) , "Join" ,
443
- new [ ] { outer . ElementType , inner . AsQueryable ( ) . ElementType , outerSelectorLambda . Body . Type , resultsSelectorLambda . Body . Type } ,
444
- outer . Expression , inner . AsQueryable ( ) . Expression , Expression . Quote ( outerSelectorLambda ) , Expression . Quote ( innerSelectorLambda ) , Expression . Quote ( resultsSelectorLambda ) ) ) ;
443
+ new [ ] { outer . ElementType , inner . AsQueryable ( ) . ElementType , outerSelectorLambda . Body . Type , resultSelectorLambda . Body . Type } ,
444
+ outer . Expression , // outer: The first sequence to join.
445
+ inner . AsQueryable ( ) . Expression , // inner: The sequence to join to the first sequence.
446
+ Expression . Quote ( outerSelectorLambda ) , // outerKeySelector: A function to extract the join key from each element of the first sequence.
447
+ Expression . Quote ( innerSelectorLambda ) , // innerKeySelector: A function to extract the join key from each element of the second sequence.
448
+ Expression . Quote ( resultSelectorLambda ) // resultSelector: A function to create a result element from two matching elements.
449
+ )
450
+ ) ;
445
451
}
446
452
447
453
/// <summary>
0 commit comments