/// <summary>
        /// 获取实体列表
        /// </summary>
        /// <param name="sender">请求SQL语句</param>
        /// <param name="table">数据表</param>
        /// <param name="extraArg">创建实体时的额外参数</param>
        /// <returns>实体列表</returns>
        internal List <T> InternalGetEntityList(Object sender, DataTable table, Object extraArg)
        {
            List <T> list = null;

            if (!DbConvert.IsDataTableNull(table))
            {
                list = new List <T>(table.Rows.Count);

                for (Int32 i = 0; i < table.Rows.Count; i++)
                {
                    T entity = this.InternalGetEntity(sender, i, table.Rows[i], extraArg);

                    list.Add(entity);
                }
            }

            return(list);
        }
        /// <summary>
        /// 获取实体数组
        /// </summary>
        /// <param name="sender">请求SQL语句</param>
        /// <param name="table">数据表</param>
        /// <param name="extraArg">创建实体时的额外参数</param>
        /// <returns>实体数组</returns>
        internal T[] InternalGetEntityArray(Object sender, DataTable table, Object extraArg)
        {
            T[] array = null;

            if (!DbConvert.IsDataTableNull(table))
            {
                array = new T[table.Rows.Count];

                for (Int32 i = 0; i < table.Rows.Count; i++)
                {
                    T entity = this.InternalGetEntity(sender, i, table.Rows[i], extraArg);

                    array[i] = entity;
                }
            }

            return(array);
        }
        /// <summary>
        /// 获取实体列表
        /// </summary>
        /// <param name="sender">请求SQL语句</param>
        /// <param name="table">数据表</param>
        /// <param name="keyColumnName">键列名称</param>
        /// <param name="extraArg">创建实体时的额外参数</param>
        /// <returns>实体列表</returns>
        internal Dictionary <TKey, T> InternalGetEntityDictionary <TKey>(Object sender, DataTable table, String keyColumnName, Object extraArg)
        {
            Dictionary <TKey, T> dict = null;

            if (!DbConvert.IsDataTableNull(table))
            {
                dict = new Dictionary <TKey, T>(table.Rows.Count);

                for (Int32 i = 0; i < table.Rows.Count; i++)
                {
                    TKey key    = this.LoadValue <TKey>(table.Rows[i], table.Columns, keyColumnName);
                    T    entity = this.InternalGetEntity(sender, i, table.Rows[i], extraArg);

                    dict[key] = entity;
                }
            }

            return(dict);
        }