private static DboCommand GetCommandSelect(string selectionList, Expression predicate, TableDefinition tabledef = null) { var _cmdText = selectionList; var _where = predicate; var _nameAndValues = new Dictionary <string, object>(); //var _argNames = new List<string>(); //var _argValues = new List<object>(); CompileResult _w = null; if (_where != null) { _w = CompileResult.CompileExpr(_where, /*_argNames, _argValues,*/ _nameAndValues, TableDefinition.GetTableDefinition(typeof(T)).DefaultDataFunction.PrefixParameter, ObjectName); } if (_w != null) { if (tabledef != null) { _cmdText += "\r\nwhere " + tabledef.ReplaceTableAlias(_w.CommandText, tabledef); } else { _cmdText += "\r\nwhere " + _w.CommandText; } } return(new DboCommand(ObjectName, _cmdText, /*_argNames.ToArray(), _argValues.ToArray()*/ _nameAndValues)); }
private static DboCommand GetCommandSelect(string selectionList, Expression predicate, TableDefinition tabledef = null) { var _cmdText = selectionList; var _where = predicate; var _nameAndValues = new Dictionary <string, object>(); CompileResult _w = null; if (_where != null) { _w = CompileResult.CompileExpr(_where, _nameAndValues, TableDefinition.GetTableDefinition(typeof(T)).DefaultDataFunction.PrefixParameter, ObjectName); } if (_w != null) { if (tabledef != null) { _cmdText += "\r\nwhere " + tabledef.ReplaceTableAlias(_w.CommandText, tabledef); } else { _cmdText += "\r\nwhere " + _w.CommandText; } } // caso os join tenham algum filtro, inserimos ele neste momento var _joinDefs = TableDefinition.GetTableDefinition(typeof(T)).JoinFields.Select(j => j.Value); foreach (var _joinDef in _joinDefs) { foreach (var _parameter in _joinDef.GetFilterParameters()) { _nameAndValues.Add(_parameter.Key, _parameter.Value); } } return(new DboCommand(ObjectName, _cmdText, _nameAndValues)); }