System.Linq.Dynamic.Core
System.Linq.Dynamic.Core copied to clipboard
Fail to `GroupBy->Select->Where->Average`
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)