/// <summary>
        /// 列表查询(单表)
        /// </summary>
        /// <param name="dbConnectionString"></param>
        /// <param name="param"></param>
        /// <param name="dp"></param>
        /// <returns></returns>
        public List <T> List(string dbConnectionString, Dictionary <string, object> param, DataPage dp = null)
        {
            var sql = new T().GetSelectSql();
            Dictionary <string, object> newParam = new Dictionary <string, object>();

            if (param != null && param.Count > 0)
            {
                sql += " where 1=1 ";
                int index = 0;
                foreach (var paramItem in param)
                {
                    var par       = GetCondition(paramItem.Key);
                    var paramName = "@Param" + ++index;
                    sql += string.Format(" and {0} {1} {2}", par.Item2, par.Item1, paramName);
                    newParam.Add(paramName, paramItem.Value);
                }
            }
            FrameWorkItem item = new FrameWorkItem
            {
                Sql              = sql,
                SqlParam         = newParam,
                ConnectionString = dbConnectionString
            };

            return(SelectList <T>(item, dp));
        }
 /// <summary>
 /// 查询单个实体
 /// </summary>
 /// <param name="item">框架实体</param>
 /// <returns>单个对象</returns>
 public T SelectModel(FrameWorkItem item)
 {
     try
     {
         var sql = DalAid.CreatePageQuerySql(item.Sql, null, dbType);
         using (var connection = GetDbConnection(item.ConnectionString))
         {
             using (var cmd = GetDbCommand(sql, connection, item.SqlParam))
             {
                 using (IDataReader dr = cmd.ExecuteReader())
                 {
                     if (dr != null && dr.Read())
                     {
                         return(DynamicBuilderEntity <T> .CreateBuilder(dr).Build(dr));
                     }
                 }
             }
         }
     }
     catch (Exception ex)
     {
         throw ex;
     }
     finally
     {
     }
     return(default(T));
 }
        /// <summary>
        /// 执行查询,并返回查询所返回的结果集中第一行的第一列。 忽略额外的列或行。
        /// </summary>
        /// <param name="item">参数</param>
        /// <returns>结果</returns>
        public object ExecuteScalar(FrameWorkItem item, bool isAdd = false)
        {
            object result = null;

            try
            {
                using (var connection = GetDbConnection(item.ConnectionString))
                {
                    using (var cmd = GetDbCommand(item.Sql, connection, item.SqlParam))
                    {
                        if (cmd != null)
                        {
                            if (isAdd)
                            {
                                cmd.CommandText += GetIdentitySql();
                            }
                            result = cmd.ExecuteScalar();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message + "\r\n" + item.Sql);
            }
            return(result);
        }
        /// <summary>
        /// 查询表格数据
        /// </summary>
        /// <param name="item">框架实体</param>
        /// <param name="dp">分页对象</param>
        /// <returns></returns>
        public DataTable SelectDataTable(FrameWorkItem item, DataPage dp = null)
        {
            DataTable result = new DataTable();

            try
            {
                var sql = DalAid.CreatePageQuerySql(item.Sql, dp, dbType);
                using (var connection = GetDbConnection(item.ConnectionString))
                {
                    using (var cmd = GetDbCommand(sql, connection, item.SqlParam))
                    {
                        using (IDataReader dr = cmd.ExecuteReader())
                        {
                            var datasSet = dr.ToDataSet();
                            if (datasSet.Tables.Count > 0)
                            {
                                result = datasSet.Tables[0];
                            }
                            return(result);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
            }
        }
        /// <summary>
        /// 查询集合,带分页
        /// </summary>
        /// <param name="item">框架实体</param>
        /// <param name="isAutoParam">是否自动匹配参数</param>
        /// <param name="dp">分页对象</param>
        /// <returns>对象集合</returns>
        public List <To> SelectList <To>(FrameWorkItem item, DataPage dp = null, bool isAutoParam = false) where To : new()
        {
            try
            {
                var sql   = DalAid.CreatePageQuerySql(item.Sql, dp, dbType);
                var param = item.SqlParam;
                if (isAutoParam)
                {
                    var where = GetWhere(item.SqlParam);
                    sql      += where.Item1;
                    param     = where.Item2;
                }
                using (var connection = GetDbConnection(item.ConnectionString))
                {
                    using (var cmd = GetDbCommand(sql, connection, param))
                    {
                        using (IDataReader dr = cmd.ExecuteReader())
                        {
                            List <To> list = new List <To>();
                            if (dp != null && dp.PageSize > 0)
                            {
                                int result = GetResult <int>(string.Format("SELECT COUNT(1) FROM ({0}) a", item.Sql), item.ConnectionString, item.SqlParam);
                                dp.RowCount = result;
                            }
                            var builders = DynamicBuilderEntity <To> .CreateBuilder(dr);

                            while (dr != null && dr.Read())
                            {
                                To tempT = new To();
                                tempT = builders.Build(dr);
                                list.Add(tempT);
                            }
                            return(list);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
            }
        }