Beispiel #1
0
        /// <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;
 }
Beispiel #3
0
 public LightBinaryQueryExpression(DataEntityMapping mapping, QueryPredicate predicate, object left, object right)
     : base(mapping)
 {
     _predicate = predicate;
     _left      = left;
     _right     = right;
 }
Beispiel #4
0
 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;
 }
Beispiel #8
0
 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));
        }
Beispiel #11
0
 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);
        }
Beispiel #15
0
        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);
        }
Beispiel #16
0
 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));
 }
Beispiel #17
0
 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));
 }
Beispiel #18
0
        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);
        }
Beispiel #20
0
        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);
        }
Beispiel #22
0
 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);
         }
     }
 }
Beispiel #23
0
 public LightExistsDataFieldInfo(DataEntityMapping mapping, QueryExpression expression, bool isTrue)
     : base(mapping)
 {
     _expression = expression;
     _isTrue     = isTrue;
 }
Beispiel #24
0
 internal MaxFunction(DataEntityMapping mapping, DataFieldInfo fieldInfo)
     : base(mapping)
 {
     _fieldinfo = fieldInfo;
 }
Beispiel #25
0
 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));
        }
Beispiel #28
0
 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()");
 }