Skip to content

Fail to GroupBy Select Where Average #633

@Cricle

Description

@Cricle

1. Description

Describe the issue or propose a feature.

2. Exception

public class DataSetA
{
    public string Name { get; set; }

    public int Id { get; set; }

    public DateTime Time { get; set; }

    public int? L { get; set; }
}

var ds = new DataSetA[0];
var q = ds.AsQueryable()
    .GroupBy("Time")
    .Select("new (Select(L).Where(it!=null).Average() as q)");//Error

var q1 = ds.GroupBy(x => x.Time)
    .Select(x => new { q = x.Select(d => d.L).Where(d => d != null).Average() });//Ok
   在 System.Linq.Dynamic.Core.Parser.ExpressionParser.ParseEnumerable(Expression instance, Type elementType, String methodName, Int32 errorPos, Type type)
   在 System.Linq.Dynamic.Core.Parser.ExpressionParser.ParseMemberAccess(Type type, Expression expression)
   在 System.Linq.Dynamic.Core.Parser.ExpressionParser.ParsePrimary()
   在 System.Linq.Dynamic.Core.Parser.ExpressionParser.ParseUnary()
   在 System.Linq.Dynamic.Core.Parser.ExpressionParser.ParseMultiplicative()
   在 System.Linq.Dynamic.Core.Parser.ExpressionParser.ParseAdditive()
   在 System.Linq.Dynamic.Core.Parser.ExpressionParser.ParseShiftOperator()
   在 System.Linq.Dynamic.Core.Parser.ExpressionParser.ParseComparisonOperator()
   在 System.Linq.Dynamic.Core.Parser.ExpressionParser.ParseLogicalAndOrOperator()
   在 System.Linq.Dynamic.Core.Parser.ExpressionParser.ParseIn()
   在 System.Linq.Dynamic.Core.Parser.ExpressionParser.ParseAndOperator()
   在 System.Linq.Dynamic.Core.Parser.ExpressionParser.ParseOrOperator()
   在 System.Linq.Dynamic.Core.Parser.ExpressionParser.ParseLambdaOperator()
   在 System.Linq.Dynamic.Core.Parser.ExpressionParser.ParseNullCoalescingOperator()
   在 System.Linq.Dynamic.Core.Parser.ExpressionParser.ParseConditionalOperator()
   在 System.Linq.Dynamic.Core.Parser.ExpressionParser.ParseNew()
   在 System.Linq.Dynamic.Core.Parser.ExpressionParser.ParseIdentifier()
   在 System.Linq.Dynamic.Core.Parser.ExpressionParser.ParsePrimary()
   在 System.Linq.Dynamic.Core.Parser.ExpressionParser.ParseUnary()
   在 System.Linq.Dynamic.Core.Parser.ExpressionParser.ParseMultiplicative()
   在 System.Linq.Dynamic.Core.Parser.ExpressionParser.ParseAdditive()
   在 System.Linq.Dynamic.Core.Parser.ExpressionParser.ParseShiftOperator()
   在 System.Linq.Dynamic.Core.Parser.ExpressionParser.ParseComparisonOperator()
   在 System.Linq.Dynamic.Core.Parser.ExpressionParser.ParseLogicalAndOrOperator()
   在 System.Linq.Dynamic.Core.Parser.ExpressionParser.ParseIn()
   在 System.Linq.Dynamic.Core.Parser.ExpressionParser.ParseAndOperator()
   在 System.Linq.Dynamic.Core.Parser.ExpressionParser.ParseOrOperator()
   在 System.Linq.Dynamic.Core.Parser.ExpressionParser.ParseLambdaOperator()
   在 System.Linq.Dynamic.Core.Parser.ExpressionParser.ParseNullCoalescingOperator()
   在 System.Linq.Dynamic.Core.Parser.ExpressionParser.ParseConditionalOperator()
   在 System.Linq.Dynamic.Core.Parser.ExpressionParser.Parse(Type resultType, Boolean createParameterCtor)
   在 System.Linq.Dynamic.Core.DynamicExpressionParser.ParseLambda(Type delegateType, ParsingConfig parsingConfig, Boolean createParameterCtor, ParameterExpression[] parameters, Type resultType, String expression, Object[] values)
   在 System.Linq.Dynamic.Core.DynamicQueryableExtensions.Select(IQueryable source, ParsingConfig config, String selector, Object[] args)

3. Fiddle or Project

4. Any further technical details

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions