/// <summary>
        /// Initializes a new instance of the <see cref="SelectQueryBase"/> class.
        /// </summary>
        /// <param name="procedure">The name of the stored procedure.</param>
        /// <param name="settings">The <see cref="IQueryBuilderSettings"/>.</param>
        /// <exception cref="ArgumentNullException"><paramref name="settings"/> is null.</exception>
        /// <exception cref="ArgumentNullException"><paramref name="procedure"/> is null or empty.</exception>
        protected CallProcedureQueryBase(string procedure, IQueryBuilderSettings settings)
        {
            if (settings == null)
            {
                throw new ArgumentNullException("settings");
            }
            if (string.IsNullOrEmpty(procedure))
            {
                throw new ArgumentNullException("procedure");
            }

            _procedure = procedure;
            _settings  = settings;

            _c = new ValueCollectionBuilder <ICallProcedureQuery>(this, settings);
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="SelectQueryBase"/> class.
        /// </summary>
        /// <param name="function">The name of the function.</param>
        /// <param name="settings">The <see cref="IQueryBuilderSettings"/>.</param>
        /// <exception cref="ArgumentNullException"><paramref name="settings"/> is null.</exception>
        /// <exception cref="ArgumentNullException"><paramref name="function"/> is null or empty.</exception>
        protected SelectFunctionQueryBase(string function, IQueryBuilderSettings settings)
        {
            if (settings == null)
            {
                throw new ArgumentNullException("settings");
            }
            if (string.IsNullOrEmpty(function))
            {
                throw new ArgumentNullException("function");
            }

            _function = function;
            _settings = settings;

            _c = new ValueCollectionBuilder <ISelectFunctionQuery>(this, settings);
        }