/// <summary>
        /// 将结果集转换为指定的数据类型
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <returns>List&lt;T&gt;.</returns>
        /// <remarks>
        ///     <para>创建:Teddy</para>
        ///     <para>日期:2018/3/22</para>
        /// </remarks>
        public List <T> ToList <T>()
            where T : class
        {
            List <T> retObjs = new List <T>();

            var drToObjectMapper = new DataReaderToObjectMapper <T>();

            using (IDataReader reader = this.ToDataReader())
            {
                if (reader == null)
                {
                    return(retObjs);
                }

                var list = new List <T>();
                while (reader.Read())
                {
                    list.Add(drToObjectMapper.ConvertObject(reader));
                }
                retObjs = list;
                reader.Close();
            }

            return(retObjs);
        }
        /// <summary>
        /// To the object.
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <returns>T.</returns>
        /// <remarks>
        ///     <para>创建:Teddy</para>
        ///     <para>日期:2018/3/22</para>
        /// </remarks>
        public T ToObject <T>()
            where T : class
        {
            T   retObj           = default(T);
            var drToObjectMapper = new DataReaderToObjectMapper <T>();

            using (IDataReader reader = this.ToDataReader())
            {
                if (reader.Read())
                {
                    retObj = drToObjectMapper.ConvertObject(reader);
                }
            }

            return(retObj);
        }
        /// <summary>
        /// 用于返回自定义的数据结构
        /// </summary>
        /// <typeparam name="TResult"></typeparam>
        /// <returns></returns>
        ///  <remarks>
        ///  var result = [...].ToList<Type1>();
        ///  result[0].P1   result[0].P2  返回的结果为Type1对象
        ///  </remarks>
        public List <TResult> ToList <TResult>() where TResult : class
        {
            List <TResult> retObjs = new List <TResult>();

            var drToObjectMapper = new DataReaderToObjectMapper <TResult>();

            using (IDataReader reader = this.ToDataReader())
            {
                if (reader == null)
                {
                    return(retObjs);
                }

                while (reader.Read())
                {
                    retObjs.Add(drToObjectMapper.ConvertObject(reader));
                }
                reader.Close();
            }
            return(retObjs);
        }