internal GathererQueryable(IQueryProvider provider, Expression expression)
        {
            if (provider == null)
            {
                provider = new GathererQueryProvider <TData>();
            }

            if (expression == null)
            {
                Expression = Expression.Constant(this);
            }

            if (!typeof(IQueryable <TData>).IsAssignableFrom(expression.Type))
            {
                throw new InvalidOperationException("expression");
            }

            Provider   = provider;
            Expression = expression;
        }
 public GathererQueryable()
 {
     Provider   = new GathererQueryProvider <TData>();
     Expression = Expression.Constant(this);
 }