public CQSet(BaseCQProvider provider)
            : base()
        {
            if (provider == null)
            {
                throw new ArgumentNullException("provider");
            }

            _provider   = provider;
            _expression = Expression.Constant(this);
        }
        public CQSet(BaseCQProvider provider, Expression expression)
            : base()
        {
            if (provider == null)
            {
                throw new ArgumentNullException("provider");
            }

            if (expression == null)
            {
                throw new ArgumentNullException("expression");
            }

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

            _provider   = provider;
            _expression = expression;
        }