private static Expression HandleGroup( EntityQueryModelVisitor entityQueryModelVisitor, GroupResultOperator groupResultOperator, QueryModel queryModel) { var keySelector = entityQueryModelVisitor .ReplaceClauseReferences( groupResultOperator.KeySelector, queryModel.MainFromClause); var elementSelector = entityQueryModelVisitor .ReplaceClauseReferences( groupResultOperator.ElementSelector, queryModel.MainFromClause); return(Expression.Call( entityQueryModelVisitor.LinqOperatorProvider.GroupBy .MakeGenericMethod( typeof(QuerySourceScope), groupResultOperator.KeySelector.Type, groupResultOperator.ElementSelector.Type), entityQueryModelVisitor.CreateScope( entityQueryModelVisitor.Expression, entityQueryModelVisitor.StreamedSequenceInfo.ResultItemType, queryModel.MainFromClause), Expression.Lambda(keySelector, EntityQueryModelVisitor.QuerySourceScopeParameter), Expression.Lambda(elementSelector, EntityQueryModelVisitor.QuerySourceScopeParameter))); }
private static Expression HandleDefaultIfEmpty( EntityQueryModelVisitor entityQueryModelVisitor, DefaultIfEmptyResultOperator defaultIfEmptyResultOperator, QueryModel queryModel) { if (defaultIfEmptyResultOperator.OptionalDefaultValue == null) { return(Expression.Call( entityQueryModelVisitor.LinqOperatorProvider.DefaultIfEmpty .MakeGenericMethod(entityQueryModelVisitor.StreamedSequenceInfo.ResultItemType), entityQueryModelVisitor.Expression)); } var optionalDefaultValue = entityQueryModelVisitor .ReplaceClauseReferences( defaultIfEmptyResultOperator.OptionalDefaultValue, queryModel.MainFromClause); return(Expression.Call( entityQueryModelVisitor.LinqOperatorProvider.DefaultIfEmptyArg .MakeGenericMethod(typeof(QuerySourceScope)), entityQueryModelVisitor.CreateScope( entityQueryModelVisitor.Expression, entityQueryModelVisitor.StreamedSequenceInfo.ResultItemType, queryModel.MainFromClause), optionalDefaultValue)); }
private static Expression HandleAll( EntityQueryModelVisitor entityQueryModelVisitor, AllResultOperator allResultOperator, QueryModel queryModel) { var predicate = entityQueryModelVisitor .ReplaceClauseReferences( allResultOperator.Predicate, queryModel.MainFromClause); return(Expression.Call( _all.MakeGenericMethod(typeof(QuerySourceScope)), entityQueryModelVisitor.CreateScope( entityQueryModelVisitor.Expression, entityQueryModelVisitor.StreamedSequenceInfo.ResultItemType, queryModel.MainFromClause), Expression.Lambda(predicate, EntityQueryModelVisitor.QuerySourceScopeParameter))); }
private static Expression HandleAll( EntityQueryModelVisitor entityQueryModelVisitor, AllResultOperator allResultOperator, QueryModel queryModel) { var predicate = entityQueryModelVisitor .ReplaceClauseReferences( allResultOperator.Predicate, queryModel.MainFromClause); return(CallWithPossibleCancellationToken( entityQueryModelVisitor.LinqOperatorProvider.All .MakeGenericMethod(typeof(QueryResultScope)), entityQueryModelVisitor.CreateScope( entityQueryModelVisitor.Expression, entityQueryModelVisitor.StreamedSequenceInfo.ResultItemType, queryModel.MainFromClause), Expression.Lambda(predicate, EntityQueryModelVisitor.QueryResultScopeParameter))); }