Ejemplo n.º 1
0
 internal SelectClause(ISelectQuery selectQuery, ISelectClause clone,
                       Dictionary <ICloneableElement, ICloneableElement> objectTree, Predicate <ICloneableElement> doClone)
     : base(selectQuery)
 {
     Columns.AddRange(clone.Columns.Select(c => (IColumn)c.Clone(objectTree, doClone)));
     IsDistinct = clone.IsDistinct;
     TakeValue  = (IQueryExpression)clone.TakeValue?.Clone(objectTree, doClone);
     SkipValue  = (IQueryExpression)clone.SkipValue?.Clone(objectTree, doClone);
 }
        public UserSuppliedQueryHandler(IMartenSession session, string sql, object[] parameters)
        {
            _sql        = sql;
            _parameters = parameters;
            _sqlContainsCustomSelect = _sql.Contains("select", StringComparison.OrdinalIgnoreCase);

            _selectClause = GetSelectClause(session);
            _selector     = (ISelector <T>)_selectClause.BuildSelector(session);
        }
Ejemplo n.º 3
0
        public JsonSelectClause(ISelectClause parent)
        {
            _sourceType = parent.SelectedType;
            FromObject  = parent.FromObject;

            if (parent is IScalarSelectClause c)
            {
                SelectionText = $"select {c.FieldName} from ";
            }
        }
Ejemplo n.º 4
0
 /// <summary>
 /// 克隆
 /// </summary>
 /// <param name="sqlBuilder">源生成器</param>
 protected void Clone(SqlBuilderBase sqlBuilder)
 {
     EntityMatedata    = sqlBuilder.EntityMatedata;
     _parameterManager = sqlBuilder._parameterManager?.Clone();
     EntityResolver    = sqlBuilder.EntityResolver ?? new EntityResolver(EntityMatedata);
     AliasRegister     = sqlBuilder.AliasRegister?.Clone() ?? new EntityAliasRegister();
     _selectClause     = sqlBuilder._selectClause?.Clone(this, AliasRegister);
     _fromClause       = sqlBuilder._fromClause?.Clone(AliasRegister);
     _joinClause       = sqlBuilder._joinClause?.Clone(this, AliasRegister);
     _whereClause      = sqlBuilder._whereClause?.Clone(AliasRegister, _parameterManager);
     _groupByClause    = sqlBuilder._groupByClause?.Clone(AliasRegister);
     _orderByClause    = sqlBuilder._orderByClause?.Clone(AliasRegister);
     _pager            = sqlBuilder._pager;
 }
Ejemplo n.º 5
0
 /// <summary>
 /// 复制Sql生成器
 /// </summary>
 /// <param name="sqlBuilder">源生成器</param>
 protected void Clone(SqlBuilderBase sqlBuilder)
 {
     EntityMatedata    = sqlBuilder.EntityMatedata;
     _parameterManager = sqlBuilder._parameterManager?.Clone();
     EntityResolver    = sqlBuilder.EntityResolver ?? new EntityResolver(EntityMatedata);
     AliasRegister     = sqlBuilder.AliasRegister?.Clone() ?? new EntityAliasRegister();
     _selectClause     = sqlBuilder._selectClause?.Clone(this, AliasRegister);
     _fromClause       = sqlBuilder._fromClause?.Clone(this, AliasRegister);
     _joinClause       = sqlBuilder._joinClause?.Clone(this, AliasRegister, _parameterManager);
     _whereClause      = sqlBuilder._whereClause?.Clone(this, AliasRegister, _parameterManager);
     _groupByClause    = sqlBuilder._groupByClause?.Clone(AliasRegister);
     _orderByClause    = sqlBuilder._orderByClause?.Clone(AliasRegister);
     Pager             = sqlBuilder.Pager;
     OffsetParam       = sqlBuilder.OffsetParam;
     LimitParam        = sqlBuilder.LimitParam;
     UnionItems        = sqlBuilder.UnionItems.Select(t => new BuilderItem(t.Name, t.Builder.Clone())).ToList();
     CteItems          = sqlBuilder.CteItems.Select(t => new BuilderItem(t.Name, t.Builder.Clone())).ToList();
 }
Ejemplo n.º 6
0
        public void Init(
            IInsertClause insert,
            IUpdateClause update,
            IDeleteClause delete,
            ISelectClause select,
            IFromClause from,
            IWhereClause where,
            IGroupByClause groupBy,
            IWhereClause having,
            IOrderByClause orderBy,
            LinkedList <IUnion> unions,
            ISelectQuery parentSelect,
            ICreateTableStatement createTable,
            bool parameterDependent,
            List <ISqlParameter> parameters)
        {
            Insert               = insert;
            Update               = update;
            Delete               = delete;
            Select               = select;
            From                 = from;
            Where                = where;
            GroupBy              = groupBy;
            Having               = having;
            OrderBy              = orderBy;
            Unions               = unions;
            ParentSelect         = parentSelect;
            CreateTable          = createTable;
            IsParameterDependent = parameterDependent;

            Parameters.AddRange(parameters);

            foreach (var col in select.Columns)
            {
                col.Parent = this;
            }

            Select.SetSqlQuery(this);
            From.SetSqlQuery(this);
            Where.SetSqlQuery(this);
            GroupBy.SetSqlQuery(this);
            Having.SetSqlQuery(this);
            OrderBy.SetSqlQuery(this);
        }
Ejemplo n.º 7
0
 protected SelectorStatement(ISelectClause selectClause, IFieldMapping fields) : base(fields)
 {
     SelectClause = selectClause;
     FromObject   = SelectClause.FromObject;
 }
Ejemplo n.º 8
0
 /// <summary>
 /// 清空Select子句
 /// </summary>
 public ISqlBuilder ClearSelect()
 {
     _selectClause = CreateSelectClause();
     return(this);
 }
Ejemplo n.º 9
0
 /// <summary>
 /// 清空Select子句
 /// </summary>
 public void ClearSelect()
 {
     _selectClause = CreateSelectClause();
 }
Ejemplo n.º 10
0
 public TransformSelectClause(TransformFunction function, ISelectClause inner) : base(inner.FromObject, $"{function.Identifier}(d.data)")
 {
 }
Ejemplo n.º 11
0
 private JsonStatement(ISelectClause selectClause, IFieldMapping fields) : base(selectClause, fields)
 {
 }
Ejemplo n.º 12
0
 public StatsSelectClause(ISelectClause inner, QueryStatistics statistics)
 {
     Inner       = inner;
     _statistics = statistics;
 }
Ejemplo n.º 13
0
 protected Statement(ISelectClause selectClause, IFieldMapping fields)
 {
     SelectClause = selectClause;
     Fields       = fields;
 }