/// <summary>
        /// 给Express加载对应的参数
        /// </summary>
        /// <param name="express"></param>
        /// <param name="json"></param>
        /// <returns></returns>
        public static void Load(DBExpress express, FrameDLRObject json)
        {
            var rtn        = express;
            var acttypekey = "$acttype";

            if (ComFunc.nvl(json.GetValue(acttypekey)) != "")
            {
                rtn.acttype = ComFunc.EnumParse <ActType>(ComFunc.nvl(json.GetValue(acttypekey)));
                json.Remove(acttypekey);
            }
            else
            {
                rtn.acttype = ActType.Query;
            }

            rtn.express = json;
        }
        /// <summary>
        /// 创建一个DBExpress对象
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="json"></param>
        /// <returns></returns>
        public static T Create <T>(FrameDLRObject json) where T : DBExpress
        {
            T   rtn        = (T)Activator.CreateInstance(typeof(T), true);
            var acttypekey = json.IgnoreCase ? "$acttype" : "$ActType";

            if (ComFunc.nvl(json.GetValue(acttypekey)) != "")
            {
                rtn.acttype = ComFunc.EnumParse <ActType>(ComFunc.nvl(json.GetValue(acttypekey)));
                json.Remove(acttypekey);
            }
            else
            {
                rtn.acttype = ActType.Query;
            }

            rtn.express = json;
            return(rtn);
        }
        public object QueryList(string id)
        {
            SetCacheEnable(false);
            var up = DB.NewDBUnitParameter();
            var s  = from t in DB.LamdaTable(up, "EXTEND_SINGLETABLE_OP", "a")
                     where (t.s_uid == id || t.S_Name == id)
                     select t;
            var list = s.GetQueryList(up);

            if (list.Count <= 0)
            {
                return(new
                {
                    code = "failed",
                    msg = "设定资料不存在"
                });
            }
            dynamic info = list.First();

            var metainfo = (from t in DB.LamdaTable(up, "EXTEND_METADATA", "a")
                            where t.MetaUID == info.MetaUID && t.IsCreated == 1
                            select new
            {
                table_name = t.MetaName
            }).GetQueryList(up);

            if (metainfo.Count <= 0)
            {
                return(new
                {
                    code = "failed",
                    msg = "元数据表不存在,无法继续进行操作"
                });
            }
            var table_name = ComFunc.nvl(metainfo.First().GetValue("table_name"));
            //组织查询表达式
            FrameDLRObject express = FrameDLRObject.CreateInstance($@"{{
$acttype : 'QueryByPage',
$orderby : 'sort_no',
$table:'{table_name}',
sort_no:true
                }}", EFFC.Frame.Net.Base.Constants.FrameDLRFlags.SensitiveCase);

            #region 获取查询条件信息
            var conditionlist = (from t in DB.LamdaTable(up, "EXTEND_SINGLETABLE_OP_CONDITIONS", "a")
                                 join t2 in DB.LamdaTable(up, "EXTEND_METADATA_COLUMNS", "b").LeftJoin() on t.S_ColumnName equals t2.MetaColumnName
                                 where t.S_UID == info.S_UID && t2.MetaUID == info.MetaUID
                                 select new
            {
                op = t.S_ConditionOP,
                column_name = t.S_ColumnName,
                parameter_name = t.S_Parameter,
                data_type = t2.MetaDataType
            }).GetQueryList(up);
            FrameDLRObject where_express = FrameDLRObject.CreateInstance(FrameDLRFlags.SensitiveCase);
            foreach (dynamic citem in conditionlist)
            {
                if (ComFunc.nvl(QueryString[citem.parameter_name]) == "")
                {
                    continue;
                }
                var            value = ConvertConditionValue(citem.data_type, ComFunc.nvl(QueryString[citem.parameter_name]));
                FrameDLRObject exp   = where_express.GetValue(citem.column_name);
                if (exp == null)
                {
                    exp = FrameDLRObject.CreateInstance(FrameDLRFlags.SensitiveCase);
                }
                switch (citem.op)
                {
                case "like":
                    exp.SetValue("$like", value);
                    where_express.SetValue(citem.column_name, exp);
                    break;

                case "=":
                    where_express.SetValue(citem.column_name, value);
                    break;

                case ">":
                    exp.SetValue("$gt", value);
                    where_express.SetValue(citem.column_name, exp);
                    break;

                case ">=":
                    exp.SetValue("$gte", value);
                    where_express.SetValue(citem.column_name, exp);
                    break;

                case "<":
                    exp.SetValue("$lt", value);
                    where_express.SetValue(citem.column_name, exp);
                    break;

                case "<=":
                    exp.SetValue("$lte", value);
                    where_express.SetValue(citem.column_name, exp);
                    break;
                }
            }
            if (where_express.Items.Count > 0)
            {
                express.SetValue("$where", where_express);
            }
            #endregion
            #region 组织select栏位
            var columns = (from t in DB.LamdaTable(up, "EXTEND_SINGLETABLE_OP_COLUMNS", "a")
                           where t.S_UID == info.S_UID
                           select new
            {
                column_name = t.S_ColumnName
            }).GetQueryList(up);
            foreach (dynamic item in columns)
            {
                express.SetValue(item.column_name, true);
            }
            #endregion
            var result = DB.Excute(up, express, true);

            return(new
            {
                code = "success",
                msg = "",
                total_count = result.TotalRow,
                page = result.CurrentPage,
                total_page = result.TotalPage,
                limit = result.Count_Of_OnePage,
                data = result.QueryData <FrameDLRObject>().Select((d) =>
                {
                    FrameDLRObject dobj = (FrameDLRObject)d;
                    dobj.Remove("RowNumber");
                    //时间类型需要转string
                    foreach (var item in dobj.Items)
                    {
                        if (item.Value is DateTime)
                        {
                            dobj.SetValue(item.Key, DateTimeStd.IsDateTimeThen(item.Value));
                        }
                    }
                    return dobj;
                })
            });
        }