/// <summary>
        /// 查询后返回 集合
        /// </summary>
        /// <typeparam name="TModel"></typeparam>
        /// <param name="sql"></param>
        /// <returns></returns>
        protected List<TModel> GetListproc<TModel>(string procName, params SqlParameter[] paras) where TModel : new()        {
            List<TModel> list = new List<TModel>();            Type type = typeof(TModel);
            //反射获取属性集合
            PropertyInfo[] ps = type.GetProperties();
            //扩展   type.GetCustomAttributes();
            using (SqlConnection conn = new SqlConnection(DBConfig))
            {
                SqlCommand command = new SqlCommand(dataBaseOwner + "." + procName, conn);
                command.CommandType = System.Data.CommandType.StoredProcedure;
                foreach (SqlParameter p in paras)
                {
                    command.Parameters.Add(p);
                }
                conn.Open();
                using (SqlDataReader reader = command.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        //  Model.GradeId=(int)reader["列名"];
                        //  Model.GradeName=(int)reader["列名"];
                        TModel model = new TModel();
                        foreach (PropertyInfo pi in ps)
                        {
                            if (reader[pi.Name] != DBNull.Value)
                            {
                                //为指定列赋值 参数 (对象, 值 ,索引值) pi.Name 获取实体类中属性名
                                pi.SetValue(model, reader[pi.Name], null);
                            }
                        }
                        list.Add(model);
                    }
                }
            }
            return list;
        }