public override IList <TResult> Execute()
        {
            var results    = default(IList <TResult>);
            var name       = this.GetName();
            var parameters = this.GetQueryParameters();

            using (var reader = database.ExecuteDataReader(name, parameters.ToArray()))
            {
                results = reader.GetCollection <TResult>().ToList();
            }

            this.UpdateOutputValues();

            return(results);
        }
        public override TResult Execute()
        {
            TResult results    = default(TResult);
            var     name       = this.GetName();
            var     parameters = this.GetQueryParameters();

            using (var reader = database.ExecuteDataReader(name, parameters.ToArray()))
            {
                results = HandleDataReader(reader, parameters);
            }

            this.UpdateOutputValues();

            return(results);
        }