public CollectionParamsQueryExpression(DataFieldInfo fieldInfo, QueryCollectionPredicate predicate, IEnumerable values) : base(fieldInfo.TableMapping) { _fieldInfo = fieldInfo; _predicate = predicate; _values = values; }
public override string CreateCollectionParamsQuerySql(object fieldName, QueryCollectionPredicate predicate, IEnumerable <string> list) { if (predicate == QueryCollectionPredicate.In || predicate == QueryCollectionPredicate.NotIn) { return(base.CreateCollectionParamsQuerySql(fieldName, predicate, list)); } var op = GetQueryCollectionPredicate(predicate); var i = 0; var sb = new StringBuilder(); sb.AppendFormat("{0} {1} (", fieldName, op); foreach (var item in list) { if (i > 0) { sb.Append(" union all "); } sb.AppendFormat("select {0}", item); i++; } sb.Append(")"); return(sb.ToString()); }
internal override string CreateSqlString(CommandFactory factory, bool isFullName, CreateSqlState state) { string sql = state.GetDataSql(this, isFullName); if (sql != null) { return(sql); } string tableName = factory.CreateDataTableMappingSql(TableMapping, state); string selectField = _selectField.CreateSqlString(factory, true, state); string field = _field.CreateSqlString(factory, isFullName, state); string query = null; if (_expression != null) { query = _expression.CreateSqlString(factory, true, state); } QueryCollectionPredicate op = _isTrue ? QueryCollectionPredicate.In : QueryCollectionPredicate.NotIn; sql = factory.CreateSubQuerySql(field, op, selectField, tableName, query); state.SetDataSql(this, isFullName, sql); return(sql); }
public CollectionParamsAggregateExpression(AggregateFunction function, QueryCollectionPredicate predicate, IEnumerable values) : base(function.TableMapping) { _function = function; _predicate = predicate; _values = values; }
public LightSubQueryDataFieldInfo(DataEntityMapping mapping, DataFieldInfo field, DataFieldInfo selectField, QueryCollectionPredicate predicate, QueryExpression expression) : base(mapping) { _field = field; _selectField = selectField; _predicate = predicate; _expression = expression; }
public SubAggregateExpression(AggregateFunction function, QueryCollectionPredicate predicate, DataFieldInfo queryFieldInfo, QueryExpression queryExpression) : base(function.TableMapping) { _function = function; _predicate = predicate; _queryFieldInfo = queryFieldInfo; _queryExpression = queryExpression; }
public SubQueryExpression(DataFieldInfo fieldInfo, QueryCollectionPredicate predicate, DataFieldInfo queryFieldInfo, QueryExpression queryExpression) : base(fieldInfo.TableMapping) { _fieldInfo = fieldInfo; _predicate = predicate; _queryFieldInfo = queryFieldInfo; _queryExpression = queryExpression; }
private AggregateHavingExpression CollectionParams(QueryCollectionPredicate predicate, System.Collections.IEnumerable values) { if (Object.Equals(values, null)) { throw new ArgumentNullException("values"); } AggregateHavingExpression exp = new CollectionParamsAggregateExpression(this, predicate, values); return(exp); }
string GetQueryCollectionPredicate(QueryCollectionPredicate predicate) { if (_queryCollectionPredicateDict.ContainsKey(predicate)) { return(_queryCollectionPredicateDict [predicate]); } else { throw new LightDataException(string.Format(RE.UnSupportPredicate, predicate)); } }
public virtual string CreateSubQuerySql(string fieldName, QueryCollectionPredicate predicate, string queryfieldName, string queryTableName, string whereString) { StringBuilder sb = new StringBuilder(); string op = GetQueryCollectionPredicate(predicate); sb.AppendFormat("{0} {3} (select {1} from {2}", fieldName, queryfieldName, queryTableName, op); if (!string.IsNullOrEmpty(whereString)) { sb.AppendFormat(" where {0}", whereString); } sb.Append(")"); return(sb.ToString()); }
private AggregateHavingExpression CollectionParams(QueryCollectionPredicate predicate, DataFieldInfo field, QueryExpression expression) { if (Object.Equals(field, null)) { throw new ArgumentNullException("field"); } if (expression == null) { throw new ArgumentNullException("expression"); } if (!expression.IgnoreConsistency && !field.TableMapping.Equals(expression.TableMapping)) { throw new LightDataException(RE.DataMappingIsNotMatchQueryExpression); } AggregateHavingExpression exp = new SubAggregateExpression(this, predicate, field, expression); return(exp); }
public virtual string CreateCollectionParamsQuerySql(string fieldName, QueryCollectionPredicate predicate, List <DataParameter> dataParameters) { string op = GetQueryCollectionPredicate(predicate); if (dataParameters.Count == 0) { throw new LightDataException(RE.EnumerableLengthNotAllowIsZero); } int i = 0; StringBuilder sb = new StringBuilder(); sb.AppendFormat("{0} {1} (", fieldName, op); foreach (DataParameter dataParameter in dataParameters) { if (i > 0) { sb.Append(","); } sb.Append(dataParameter.ParameterName); i++; } sb.Append(")"); return(sb.ToString()); }