public ParamInfo GetParamInfo(IContext context, string dataStr) { var key = dataStr.Substring(1, dataStr.Length - 1); var keyArray = key.Split('_'); var str = keyArray[1]; var array = str.Split('.'); if (array.Count() <= 1) { throw new ArgumentException(string.Concat("参数", str, "设置错误!")); } var objectKey = array[0]; var fields = array.Skip(1).ToArray(); var realKey = string.Concat(objectKey, "_", string.Join("_", fields)); var queryParams = GetQueryParams(context); object outData = GetDataFromCache(queryParams, realKey); var data = GetObject(objectKey, context); var valueInfo = ValueGetter.GetValue(fields, data); outData = ValueGetter.Builder(valueInfo); queryParams.ReplaceOrInsert(realKey, outData); return(new ParamInfo { OriginalData = valueInfo.Data, Type = ParamType.Object, Name = key, Data = outData }); }
internal static string BuildSql(IContext context, string oldSql, Segment segment) { var data1 = ParamsUtil.GetParamData(context, segment.Args.ElementAt(0)).Data; var data2 = ParamsUtil.GetParamData(context, segment.Args.ElementAt(1)).Data; string start = ValueGetter.Builder(data1, false); string size = ValueGetter.Builder(data2, false); return(string.Concat(string.Intern("limit "), start, SqlKeyWorld.Split3, size)); }
internal static string BuildSql(IContext context, string oldSql, Segment segment) { var data = ParamsUtil.GetParamData(context, segment.Args.ElementAt(0)).Data; var isArray = ReflectUtil.ReflectUtil.IsArray(data); string inParams = ValueGetter.Builder(data, isArray); if (!string.IsNullOrEmpty(inParams)) { return(string.Concat(segment.Args.ElementAt(1), SqlKeyWorld.WhiteSpace, SqlKeyWorld.In, "(", inParams, ")")); } return(SegmentUtil.GetContent(oldSql, segment)); }