/// <summary> /// Concat the specified expression1, operatorType and expression2. /// </summary> /// <param name="expression1">Expression1.</param> /// <param name="operatorType">Operator type.</param> /// <param name="expression2">Expression2.</param> internal static QueryExpression Concat(QueryExpression expression1, ConcatOperatorType operatorType, QueryExpression expression2) { if (expression1 == null && expression2 == null) { return(null); } else if (expression1 == null && expression2 != null) { return(expression2); } else if (expression1 != null && expression2 == null) { return(expression1); } DataEntityMapping demapping = null; if (expression1.TableMapping != null) { demapping = expression1.TableMapping; } else if (expression2.TableMapping != null) { demapping = expression2.TableMapping; } QueryExpression newExpression = new QueryExpression(demapping); newExpression._expression1 = expression1; newExpression._expression2 = expression2; newExpression._operatorType = operatorType; newExpression.mutliQuery = expression1.mutliQuery | expression2.mutliQuery; return(newExpression); }
internal ConditionSumFunction(DataEntityMapping mapping, QueryExpression expression, DataFieldInfo fieldinfo, bool isDistinct) : base(mapping) { _expression = expression; _fieldinfo = fieldinfo; _isDistinct = isDistinct; }
public LightBinaryQueryExpression(DataEntityMapping mapping, QueryPredicate predicate, object left, object right) : base(mapping) { _predicate = predicate; _left = left; _right = right; }
public LightMathCalculateDataFieldInfo(DataEntityMapping mapping, MathOperator opera, object left, object right) : base(mapping) { _opera = opera; _left = left; _right = right; }
public void SetTableMapping(DataEntityMapping mapping) { if (mapping == null) { throw new ArgumentNullException("DataEntityMapping"); } TableMapping = mapping; }
public LightStringMatchDataFieldInfo(DataEntityMapping mapping, bool starts, bool ends, object left, object right) : base(mapping) { _starts = starts; _ends = ends; _left = left; _right = right; }
public LightInQueryDataFieldInfo(DataEntityMapping mapping, DataFieldInfo field, DataFieldInfo selectField, QueryExpression expression, bool isTrue) : base(mapping) { _field = field; _selectField = selectField; _expression = expression; _isTrue = isTrue; }
internal BasicFieldInfo(DataEntityMapping tableMapping) { if (tableMapping == null) { throw new System.ArgumentNullException(nameof(tableMapping)); } _tableMapping = tableMapping; }
public LightSubQueryDataFieldInfo(DataEntityMapping mapping, DataFieldInfo field, DataFieldInfo selectField, QueryCollectionPredicate predicate, QueryExpression expression) : base(mapping) { _field = field; _selectField = selectField; _predicate = predicate; _expression = expression; }
public override CommandData CreateSelectBaseCommand(DataEntityMapping mapping, string customSelect, QueryExpression query, OrderExpression order, Region region, CreateSqlState state) //, bool distinct) { if (region != null) { if (region.Start == 0) { var sql = new StringBuilder(); sql.Append( $"select top {region.Size} {customSelect} from {CreateDataTableMappingSql(mapping, state)}"); if (query != null) { sql.Append(GetQueryString(query, false, state)); } if (order != null) { sql.Append(GetOrderString(order, false, state)); } var commandData = new CommandData(sql.ToString()) { InnerPage = true }; return(commandData); } if (order == null) { order = CreatePrimaryKeyOrderExpression(mapping); } if (order != null) { var rName = CreateDataFieldSql("R" + Guid.NewGuid().ToString("N")); var sql = new StringBuilder(); sql.Append("select * from ("); var totalSize = region.Start + (long)region.Size; sql.Append( $"select top {totalSize} {customSelect},row_number() over (order by {order.CreateSqlString(this, false, state)}) as {rName} from {CreateDataTableMappingSql(mapping, state)}"); if (query != null) { sql.Append(GetQueryString(query, false, state)); } sql.Append($") as RT where {rName}>{region.Start}"); var commandData = new CommandData(sql.ToString()) { InnerPage = true }; return(commandData); } } return(base.CreateSelectBaseCommand(mapping, customSelect, query, order, region, state)); }
internal BasicFieldInfo(DataEntityMapping tableMapping, DataFieldMapping dataField) { if (tableMapping == null) { throw new System.ArgumentNullException(nameof(tableMapping)); } if (tableMapping != DataEntityMapping.Default && dataField == null) { throw new System.ArgumentNullException(nameof(dataField)); } _tableMapping = tableMapping; _dataField = dataField; }
public override CommandData CreateSelectBaseCommand(DataEntityMapping mapping, string customSelect, QueryExpression query, OrderExpression order, Region region, CreateSqlState state) //, bool distinct) { var command = base.CreateSelectBaseCommand(mapping, customSelect, query, order, region, state); if (region != null) { command.CommandText = region.Start == 0 ? $"{command.CommandText} limit {region.Size}" : $"{command.CommandText} limit {region.Start},{region.Size}"; command.InnerPage = true; } return(command); }
public override CommandData CreateSelectBaseCommand(DataEntityMapping mapping, string customSelect, QueryExpression query, OrderExpression order, Region region, CreateSqlState state)//, bool distinct) { if (region != null) { if (region.Start == 0) { StringBuilder sql = new StringBuilder(); sql.AppendFormat("select top {2} {0} from {1}", customSelect, CreateDataTableMappingSql(mapping, state), region.Size); if (query != null) { sql.Append(GetQueryString(query, false, state)); } if (order != null) { sql.Append(GetOrderString(order, false, state)); } CommandData commandData = new CommandData(sql.ToString()); commandData.InnerPage = true; return(commandData); } else { if (order == null) { order = CreatePrimaryKeyOrderExpression(mapping); } if (order != null) { string rname = CreateDataFieldSql("R" + Guid.NewGuid().ToString("N")); StringBuilder sql = new StringBuilder(); sql.Append("select * from ("); long totalsize = region.Start + (long)region.Size; sql.AppendFormat("select top {4} {0},row_number() over (order by {2}) as {3} from {1}", customSelect, CreateDataTableMappingSql(mapping, state), order.CreateSqlString(this, false, state), rname, totalsize); if (query != null) { sql.Append(GetQueryString(query, false, state)); } sql.AppendFormat(") as RT where {0}>{1}", rname, region.Start); CommandData commandData = new CommandData(sql.ToString()); commandData.InnerPage = true; return(commandData); } } } return(base.CreateSelectBaseCommand(mapping, customSelect, query, order, region, state)); }
protected override IDbCommand CreateSelectBaseCommand(DataEntityMapping mapping, string customSelect, QueryExpression query, OrderExpression order, Region region) //, bool distinct) { IDbCommand command = base.CreateSelectBaseCommand(mapping, customSelect, query, order, region); if (region != null) { if (region.Start == 0) { command.CommandText = string.Format("{0} limit {1}", command.CommandText, region.Size); } else { command.CommandText = string.Format("{0} limit {1},{2}", command.CommandText, region.Start, region.Size); } } return(command); }
public override CommandData CreateAggregateTableCommand(DataEntityMapping mapping, AggregateSelector selector, AggregateGroupBy groupBy, QueryExpression query, QueryExpression having, OrderExpression order, Region region, CreateSqlState state) { CommandData command = base.CreateAggregateTableCommand(mapping, selector, groupBy, query, having, order, region, state); if (region != null) { if (region.Start == 0) { command.CommandText = string.Format("{0} limit {1}", command.CommandText, region.Size); } else { command.CommandText = string.Format("{0} limit {2} offset {1}", command.CommandText, region.Start, region.Size); } command.InnerPage = true; } return(command); }
public override CommandData CreateSelectBaseCommand(DataEntityMapping mapping, string customSelect, QueryExpression query, OrderExpression order, Region region, CreateSqlState state)//, bool distinct) { if (region != null && region.Start > 0) { if (order == null) { order = CreatePrimaryKeyOrderExpression(mapping); } if (order != null) { CommandData commandData = base.CreateSelectBaseCommand(mapping, customSelect, query, order, null, state); commandData.CommandText = string.Format("{0} offset {1} row fetch next {2} rows only", commandData.CommandText, region.Start, region.Size); commandData.InnerPage = true; return(commandData); } } return(base.CreateSelectBaseCommand(mapping, customSelect, query, order, region, state)); }
public override CommandData CreateAggregateTableCommand(DataEntityMapping mapping, AggregateSelector selector, AggregateGroupBy groupBy, QueryExpression query, QueryExpression having, OrderExpression order, Region region, CreateSqlState state) { if (region != null && region.Start > 0) { if (order == null) { order = CreateGroupByOrderExpression(groupBy); } if (order != null) { CommandData command = base.CreateAggregateTableCommand(mapping, selector, groupBy, query, having, order, null, state); command.CommandText = string.Format("{0} offset {1} row fetch next {2} rows only", command.CommandText, region.Start, region.Size); command.InnerPage = true; return(command); } } return(base.CreateAggregateTableCommand(mapping, selector, groupBy, query, having, order, region, state)); }
public override CommandData CreateSelectBaseCommand(DataEntityMapping mapping, string customSelect, QueryExpression query, OrderExpression order, Region region, CreateSqlState state)//, bool distinct) { CommandData command = base.CreateSelectBaseCommand(mapping, customSelect, query, order, region, state); if (region != null) { if (region.Start == 0) { command.CommandText = string.Format("{0} limit {1}", command.CommandText, region.Size); } else { command.CommandText = string.Format("{0} limit {2} offset {1}", command.CommandText, region.Start, region.Size); } command.InnerPage = true; } return(command); }
public override CommandData CreateAggregateTableCommand(DataEntityMapping mapping, AggregateSelector selector, AggregateGroupBy groupBy, QueryExpression query, QueryExpression having, OrderExpression order, Region region, CreateSqlState state) { var command = base.CreateAggregateTableCommand(mapping, selector, groupBy, query, having, order, region, state); if (region != null) { command.CommandText = region.Start == 0 ? $"{command.CommandText} limit {region.Size}" : $"{command.CommandText} limit {region.Start},{region.Size}"; command.InnerPage = true; } return(command); }
public override CommandData CreateSelectBaseCommand(DataEntityMapping mapping, string customSelect, QueryExpression query, OrderExpression order, Region region, CreateSqlState state) { if (region != null && region.Start > 0) { if (order == null) { order = CreatePrimaryKeyOrderExpression(mapping); } if (order != null) { var commandData = base.CreateSelectBaseCommand(mapping, customSelect, query, order, null, state); commandData.CommandText = $"{commandData.CommandText} offset {region.Start} row fetch next {region.Size} rows only"; commandData.InnerPage = true; return(commandData); } } return(base.CreateSelectBaseCommand(mapping, customSelect, query, order, region, state)); }
/// <summary> /// Concat the specified expression1, operatorType and expression2. /// </summary> /// <param name="expression1">Expression1.</param> /// <param name="operatorType">Operator type.</param> /// <param name="expression2">Expression2.</param> internal static QueryExpression Concat(QueryExpression expression1, ConcatOperatorType operatorType, QueryExpression expression2) { if (expression1 == null && expression2 == null) { return(null); } if (expression1 == null) { return(expression2); } if (expression2 == null) { return(expression1); } DataEntityMapping deMapping = null; if (expression1.TableMapping != null) { deMapping = expression1.TableMapping; } else if (expression2.TableMapping != null) { deMapping = expression2.TableMapping; } var newExpression = new QueryExpression(deMapping) { _expression1 = expression1, _expression2 = expression2, _operatorType = operatorType, MultiQuery = expression1.MultiQuery | expression2.MultiQuery }; return(newExpression); }
internal BasicFieldInfo(DataEntityMapping tableMapping, bool customName, string name) { if (tableMapping == null) { throw new System.ArgumentNullException(nameof(tableMapping)); } if (name == null) { throw new System.ArgumentNullException(nameof(name)); } _tableMapping = tableMapping; if (customName) { _dataField = new CustomFieldMapping(name, tableMapping); } else { _dataField = TableMapping.FindDataEntityField(name); if (_dataField == null) { _dataField = new CustomFieldMapping(name, tableMapping); } } }
public LightExistsDataFieldInfo(DataEntityMapping mapping, QueryExpression expression, bool isTrue) : base(mapping) { _expression = expression; _isTrue = isTrue; }
internal MaxFunction(DataEntityMapping mapping, DataFieldInfo fieldInfo) : base(mapping) { _fieldinfo = fieldInfo; }
internal QueryExpression(DataEntityMapping tableMapping) { TableMapping = tableMapping; }
public override CommandData CreateSelectInsertCommand(InsertSelector insertSelector, DataEntityMapping mapping, AggregateSelector selector, AggregateGroupBy groupBy, QueryExpression query, QueryExpression having, OrderExpression order, CreateSqlState state) { var selectCommandData = CreateAggregateTableCommand(mapping, selector, groupBy, query, having, null, null, state); var insertFields = insertSelector.GetInsertFields(); var insertFieldNames = new string[insertFields.Length]; for (var i = 0; i < insertFields.Length; i++) { insertFieldNames[i] = CreateDataFieldSql(insertFields[i].FieldName); } var insertString = string.Join(",", insertFieldNames); var selectString = insertSelector.CreateSelectString(this, false, state); var sql = $"insert into {CreateDataTableMappingSql(insertSelector.InsertMapping, state)}({insertString})select {selectString} from ({selectCommandData.CommandText}) as A"; if (order != null) { state.UseFieldAlias = true; sql += GetOrderString(order, false, state); state.UseFieldAlias = false; } selectCommandData.CommandText = sql; return(selectCommandData); }
public override CommandData CreateAggregateTableCommand(DataEntityMapping mapping, AggregateSelector selector, AggregateGroupBy groupBy, QueryExpression query, QueryExpression having, OrderExpression order, Region region, CreateSqlState state) { if (region != null) { if (region.Start == 0) { var sql = new StringBuilder(); var selectString = selector.CreateSelectString(this, false, state); sql.Append( $"select top {region.Size} {selectString} from {CreateDataTableMappingSql(mapping, state)}"); if (query != null) { sql.Append(GetQueryString(query, false, state)); } if (groupBy != null) { sql.Append(GetGroupByString(groupBy, false, state)); } if (having != null) { sql.Append(GetHavingString(having, false, state)); } if (order != null) { sql.Append(GetAggregateOrderString(order, false, state)); } var command = new CommandData(sql.ToString()) { InnerPage = true }; return(command); } if (order == null) { order = CreateGroupByOrderExpression(groupBy); } if (order != null) { var rName = CreateDataFieldSql("R" + Guid.NewGuid().ToString("N")); var sql = new StringBuilder(); var selectString = selector.CreateSelectString(this, false, state); sql.Append("select * from ("); var totalSize = region.Start + (long)region.Size; sql.Append( $"select top {totalSize} {selectString},row_number() over (order by {order.CreateSqlString(this, false, state)}) as {rName} from {CreateDataTableMappingSql(mapping, state)}"); if (query != null) { sql.Append(GetQueryString(query, false, state)); } if (groupBy != null) { sql.Append(GetGroupByString(groupBy, false, state)); } if (having != null) { sql.Append(GetHavingString(having, false, state)); } sql.Append($") as RT where {rName}>{region.Start}"); var commandData = new CommandData(sql.ToString()) { InnerPage = true }; return(commandData); } } return(base.CreateAggregateTableCommand(mapping, selector, groupBy, query, having, order, region, state)); }
protected LightDataFieldInfo(DataEntityMapping mapping, bool customName, string name) : base(mapping, customName, name) { }
protected LightAggregateDataFieldInfo(DataEntityMapping mapping) : base(mapping) { }
public override string CreateRandomOrderBySql(DataEntityMapping mapping, string aliasName, bool fullFieldName) { return("rand()"); }