Esempio n. 1
0
        /// <summary>
        /// 根据结点数据计算最终条件表达式的值
        /// </summary>
        /// <param name="item">高级查询对象</param>
        /// <returns>二元组</returns>
        Tuple <string, object[]> CalcFinalExpr(AdvQueryItem item)
        {
            //检查查询项数据
            if (item == null || item.Nodes == null)
            {
                return(null);
            }
            if (!item.Nodes.Exists(t => t.ParentId == 0))
            {
                return(null);
            }

            string         whereExp   = "";
            IList <object> parameters = new List <object>();

            //查询到根节点。
            AdvQueryNode rootNode = item.Nodes.FirstOrDefault(t => t.ParentId == 0);

            //生成ODT模型的对象
            object odtObj = RefHelper.LoadClass(item.ModelName);

            ProcessQueryNode(rootNode, item, odtObj, ref whereExp, ref parameters);
            //是否有查询条件
            if (parameters.Count == 0)
            {
                return(null);
            }

            Tuple <string, object[]> result = new Tuple <string, object[]>(whereExp, parameters.ToArray());

            return(result);
        }
Esempio n. 2
0
        private IResultFilter CreaterInnerFilter(Type _queryType)
        {
            string typeName = _queryType.AssemblyQualifiedName;

            //RefHelper.LoadType(
            //    "Jurassic.CommonModels.EFProvider.OrgEFAuditDataService`1[[Jurassic.CommonModels.Organization.Dep_Department, Jurassic.CommonModels]],Jurassic.CommonModels.EFProvider"));
            return(RefHelper.LoadClass("Jurassic.WebQuery.AdvQueryFilterWrapper`1[[" + typeName + "]], Jurassic.WebQuery")
                   as IResultFilter);
        }