protected override object GetMetaValue(string key) { //if (!columns.ContainsKey(key.ToLower())) //{ // var tmp = LinqDLRColumn.New<TColumn>("", this, SqlFlags); // tmp.ColumnExpress = $"{(BelongToTable == "" ? "" : BelongToTable + ".")}{string.Format(SqlFlags.Column_Quatation,key)}"; // columns.Add(key.ToLower(), tmp); //} //return columns[key.ToLower()]; var tmp = LinqDLRColumn.New <TColumn>("", this, SqlFlags); tmp.ColumnExpress = $"{(BelongToTable == "" ? "" : BelongToTable + ".")}{string.Format(SqlFlags.Column_Quatation, key)}"; //columns.Add(key.ToLower(), tmp); return(tmp); }
/// <summary> /// 将一个常量转化成LinqDLRColumn以便进行相关where操作 /// </summary> /// <param name="args">只有一个参数</param> /// <returns></returns> protected virtual object ConvertConstaValueToLinqDLRColumn(object[] args) { if (args == null || args.Length <= 0) { return(null); } var pname = "" + Convert.ToInt64(ComFunc.RandomCode(6)); var value = args[0]; var tmp = LinqDLRColumn.New <TColumn>("", null, SqlFlags); var columnexpress = $"{SqlFlags.ParamFlag}{pname}"; var ldr = LinqDLRColumn.New <TColumn>(columnexpress, this, SqlFlags); ldr.ConditionValues.Add(pname, value); tmp = null; return(ldr); }
protected virtual object Convert2FunctionExpress(object[] args) { if (args == null || args.Length <= 0) { return(null); } //第一个参数为string,为sql中function的名称,后面参数为function的参数 var func_name = ComFunc.nvl(args[0]); var express = $"{func_name}(#args#)"; var args_express = ""; var tmp = LinqDLRColumn.New <TColumn>("", null, SqlFlags); if (args.Length > 1) { for (var i = 1; i < args.Length; i++) { var arg = args[i]; if (arg is LinqDLRColumn) { args_express += "," + tmp.Convert2Express(arg); } else if (arg is string) { args_express += $",'{arg}'"; } else { args_express += $",{arg}"; } } } args_express = args_express.Length > 0 ? args_express.Substring(1) : args_express; express = express.Replace("#args#", args_express); tmp.ColumnExpress = express; return(tmp); }