src/NetStandard/EntityFrameworkCore/Query/src/CollectionConstantPredicateBuilder{SourceType,ComparisonType}.cs
/// <summary>
/// Builds the body expression for a possible lambda expression.
/// </summary>
/// <typeparam name="TargetType">The target type you can use for mapping in <paramref name="configureMemberMappings"/>.</typeparam>
/// <param name="configureMemberMappings">Lets you map source type member accesses to target type member accesses.</param>
/// <param name="targetParameter">The parameter that served as replacement for the member mappings.</param>
/// <param name="concatenatedExpressionFactory">Manipulates the concatenated expression result.</param>
/// <returns>The body expression for a possible lambda expression.</returns>
Builds the body expression for a possible lambda expression.
Builds the body expression for a possible lambda expression .
internal Expression BuildBodyExpression<TargetType>(Action<ICollectionConstantPredicateBuilderExpressionMapper<SourceType, TargetType>> configureMemberMappings,
            out ParameterExpression targetParameter, Func<Expression, Expression>? concatenatedExpressionFactory = null)
        {
            var concatenatedExpression = BuildBodyExpression(concatenatedExpressionFactory);
            targetParameter = Expression.Parameter(typeof(TargetType), "sourceAsTarget");
            var expressionMapper = new CollectionConstantPredicateBuilderExpressionMapper<TargetType>(parentBuilder.SourceParameterExpression,
                targetParameter);
            configureMemberMappings(expressionMapper);
            var expressionMappings = expressionMapper.GetMappings();
            var expressionReplacer = new EqualityComparingExpressionReplacerVisitor(expressionMappings);
            concatenatedExpression = expressionReplacer.Visit(concatenatedExpression);
            return concatenatedExpression;
        }
internal Expression BuildBodyExpression < TargetType > ( Action < ICollectionConstantPredicateBuilderExpressionMapper < SourceType , TargetType > > configureMemberMappings , out ParameterExpression targetParameter , Func < Expression , Expression > ? concatenatedExpressionFactory = null ) { var concatenatedExpression = BuildBodyExpression ( concatenatedExpressionFactory ) ; targetParameter = Expression . Parameter ( typeof ( TargetType ) , " " ) ; var expressionMapper = new CollectionConstantPredicateBuilderExpressionMapper < TargetType > ( parentBuilder . SourceParameterExpression , targetParameter ) ; configureMemberMappings ( expressionMapper ) ; var expressionMappings = expressionMapper . GetMappings ( ) ; var expressionReplacer = new EqualityComparingExpressionReplacerVisitor ( expressionMappings ) ; concatenatedExpression = expressionReplacer . Visit ( concatenatedExpression ) ; return concatenatedExpression ; }
Builds the body expression for a possible lambda expression.
Builds the body expression for a possible lambda expression .
The body expression for a possible lambda expression.
The body expression for a possible lambda expression .
configureMemberMappings
Action<ICollectionConstantPredicateBuilderExpressionMapper<SourceType, TargetType>>
Lets you map source type member accesses to target type member accesses.
Lets you map source type member accesses to target type member accesses .
ParameterExpression
out
concatenatedExpressionFactory
Func<Expression, Expression>?
Manipulates the concatenated expression result.
Manipulates the concatenated expression result .
targetParameter
The parameter that served as replacement for the member mappings.
The parameter that served as replacement for the member mappings .
typeparam
The target type you can use for mapping in .
The target type you can use for mapping in .