/// <summary>
        /// 获取表达式列表对应的参数列表和条件
        /// </summary>
        /// <param name="express"></param>
        /// <returns></returns>
        public CoreFrameworkEntity GetParaListAndWhere(List <Expression> express)
        {
            //获取实体列的特性
            List <EntityPropColumnAttributes> columnAttrList = AttributeHelper.GetEntityColumnAtrributes <TEntity>();

            #region 获取参数和条件
            //参数列表
            List <SqlParameter> listPara = new List <SqlParameter>();
            //条件
            string where = "";
            if (express != null)
            {
                if (express.Count == 0)
                {
                    where = "1=1";
                }
                int i = 0;//运行的位置,从下标0开始
                foreach (Expression exp in express)
                {
                    string fieldName = columnAttrList.Where(w => w.propName.ToLower() == exp.FieldName.ToLower()).Count() > 0
                        ? columnAttrList.Where(w => w.propName.ToLower() == exp.FieldName.ToLower()).First().fieldName : exp.FieldName;
                    //连接符号
                    if (string.IsNullOrEmpty(exp.Join))
                    {
                        //判断个数是为了防止参数名相同
                        int    fieldCount = express.Where(e => e.FieldName == exp.FieldName).Count();
                        string paraName   = fieldCount == 1 ? exp.FieldName : exp.FieldName + "_p" + i.ToStr();

                        //当两个条件没有使用连接符时,则默认用and拼接,从第一个参数后试用
                        if (i > 0)
                        {
                            //如果上一个参数不是连接符时,默认每个参数是以and的形式拼接
                            if (string.IsNullOrEmpty(express[i - 1].Join))
                            {
                                where += " and ";
                            }
                        }

                        #region 条件语句
                        switch (exp.Condition.Trim())
                        {
                        case "like":
                            listPara.Add(new SqlParameter("@" + paraName, "%" + exp.Value + "%"));
                            where += " " + fieldName + " like @" + paraName;
                            break;

                        case "in":
                            where += " " + fieldName + " in (" + exp.Value + ")";
                            break;

                        default:
                            listPara.Add(new SqlParameter("@" + paraName, exp.Value));
                            where += " " + fieldName + " " + exp.Condition + " @" + paraName;
                            break;
                        }
                        #endregion
                    }
                    else
                    {
                        where += " " + exp.Join + " ";
                    }
                    i++;
                }
            }
            else
            {
                where = "1=1";
            }
            #endregion

            CoreFrameworkEntity entity = new CoreFrameworkEntity();
            entity.paraList = listPara;
            entity.where    = where;
            return(entity);
        }