예제 #1
0
        public GroupByQueryBase(QueryBase innerQuery, LambdaExpression keys)
        {
            InnerQuery = innerQuery;

            if (keys == null)
            {
                throw BuilderError.ArgumentNull(nameof(keys)).AsException();
            }

            // Keys must be named
            if (keys.Body is NewExpression newExpression)
            {
                KeyColumns = newExpression.Members.Zip(newExpression.Arguments, (l, r) => (Left: l, Right: r))
                             .Select(p => (p.Left as PropertyInfo, p.Right))
                             .ToImmutableArray();
            }
            else
            {
                throw QueryBuilderError.GroupByNotNewExpression().AsException();
            }
        }
예제 #2
0
 public async void Error_On_Keys_Not_New_Expression(string groupBy, string location)
 {
     await VerifyGroupByErrorRaised(QueryBuilderError.GroupByNotNewExpression(), groupBy, location);
 }