/// <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); }
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); }