예제 #1
0
 public void AndAlso(SqlValueExpression <TEntity, bool> conditionExpression)
 {
     _expression = _expression.AndAlso(
         conditionExpression.QueryExpression
         );
     AddJoins(conditionExpression.Joins);
 }
예제 #2
0
        public SelectQueryBuilder AddElement(object value, string alias)
        {
            elements.Add(CreateSelectElement(SqlValueExpression.From(value), alias));


            return(this);
        }
예제 #3
0
 public void OrElse(SqlValueExpression <TEntity, bool> conditionExpression)
 {
     _expression = _expression.OrElse(
         conditionExpression.QueryExpression
         );
     AddJoins(conditionExpression.Joins);
 }
예제 #4
0
        public override int GetHashCode()
        {
            int hash = 13;

            hash = (hash * 7) + Title.GetHashCode();
            hash = (hash * 7) + SqlValueExpression.GetHashCode();

            return(hash);
        }
예제 #5
0
        private SelectElement CreateSelectElement(SqlValueExpression value, string alias)
        {
            switch (value)
            {
            case FieldReference field:
                return(new SelectElementExpression(field, alias ?? field.FieldName));

            default:
                return(new SelectElementExpression(value, alias));
            }
        }
예제 #6
0
        protected virtual void ParseValueExpression(SqlValueExpression expression)
        {
            switch (expression)
            {
            case FieldReference field:
                ParseField(field);
                return;

            case SqlConstantExpression constant:
                ParseParameter(constant);
                return;

            case SqlArithmeticalExpression arithmetical:
                ParseArithmeticalExpression(arithmetical);
                return;

            default:
                UnknowExpression(expression);
                return;
            }
        }
예제 #7
0
 public SqlUpdateBuilder <TEntity> OrWhere(SqlValueExpression <TEntity, bool> conditionExpression)
 {
     _whereBuilder.OrElse(conditionExpression);
     return(this);
 }
예제 #8
0
 public void OrderByDescending <TValue>(SqlValueExpression <TEntity, TValue> expression)
 {
     _expressions.Add(new SqlValueExpression <TEntity, TValue>(
                          QueryExpression.OrderByDescending(expression.QueryExpression), expression.Joins
                          ));
 }
예제 #9
0
 public SqlUpdateBuilder <TEntity> AndWhere(SqlValueExpression <TEntity, bool> conditionExpression)
 {
     _whereBuilder.AndAlso(conditionExpression);
     return(this);
 }
예제 #10
0
 public TSelf Offset <TValue>(SqlValueExpression <TEntity, TValue> expression)
 {
     QueryBuilder.Offset(expression);
     return(_self);
 }
예제 #11
0
 public void Limit <TValue>(SqlValueExpression <TEntity, TValue> expression)
 {
     _limit = expression;
 }
예제 #12
0
 public void GroupBy <TValue>(SqlValueExpression <TEntity, TValue> expression)
 {
     _expressions.Add(new SqlValueExpression <TEntity, TValue>(
                          QueryExpression.GroupBy(expression.QueryExpression), expression.Joins));
 }
예제 #13
0
 public TSelf OrHaving(SqlValueExpression <TEntity, bool> conditionExpression)
 {
     QueryBuilder.OrHaving(conditionExpression);
     return(_self);
 }
예제 #14
0
 public SqlUpdateOperation <TEntity> AndWhere(SqlValueExpression <TEntity, bool> conditionExpression)
 {
     _queryBuilder.AndWhere(conditionExpression);
     return(this);
 }
예제 #15
0
 IWhereQueryBuilder <TEntity> IWhereQueryBuilder <TEntity> .OrWhere(SqlValueExpression <TEntity, bool> conditionExpression)
 => OrWhere(conditionExpression);
예제 #16
0
 IOrderByQueryBuilder <TEntity> IOrderByQueryBuilder <TEntity> .OrderBy <TValue>(SqlValueExpression <TEntity, TValue> expression)
 => OrderBy(expression);
예제 #17
0
 IOrderByQueryBuilder <TEntity> IOrderByQueryBuilder <TEntity> .OrderByDescending <TValue>(SqlValueExpression <TEntity, TValue> expression)
 => OrderByDescending(expression);
예제 #18
0
 IRangeQueryBuilder <TEntity> IRangeQueryBuilder <TEntity> .Offset <TValue>(SqlValueExpression <TEntity, TValue> expression)
 => Offset(expression);
예제 #19
0
 IRangeQueryBuilder <TEntity> IRangeQueryBuilder <TEntity> .Limit <TValue>(SqlValueExpression <TEntity, TValue> expression)
 => Limit(expression);
예제 #20
0
 IGroupByQueryBuilder <TEntity> IGroupByQueryBuilder <TEntity> .GroupBy <TValue>(SqlValueExpression <TEntity, TValue> expression)
 => GroupBy(expression);
예제 #21
0
 public void Offset <TValue>(SqlValueExpression <TEntity, TValue> expression)
 {
     _offset = expression;
 }
예제 #22
0
 public SqlSelectBuilder <TEntity> OrderByDescending <TValue>(SqlValueExpression <TEntity, TValue> expression)
 {
     _orderByBuilder.OrderByDescending(expression);
     return(this);
 }
예제 #23
0
 public SqlSelectBuilder <TEntity> Offset <TValue>(SqlValueExpression <TEntity, TValue> expression)
 {
     _rangeBuilder.Offset(expression);
     return(this);
 }
예제 #24
0
 public SelectElementExpression(SqlValueExpression expression, string alias)
 {
     Alias      = alias ?? throw new ArgumentNullException(nameof(alias));
     Expression = expression ?? throw new ArgumentNullException(nameof(expression));
 }
예제 #25
0
 IHavingQueryBuilder <TEntity> IHavingQueryBuilder <TEntity> .OrHaving(SqlValueExpression <TEntity, bool> conditionExpression)
 => OrHaving(conditionExpression);
예제 #26
0
 public TSelf OrderByDescending <TValue>(SqlValueExpression <TEntity, TValue> expression)
 {
     QueryBuilder.OrderByDescending(expression);
     return(_self);
 }
예제 #27
0
 public SqlDeleteOperation <TEntity> OrWhere(SqlValueExpression <TEntity, bool> conditionExpression)
 {
     _queryBuilder.OrWhere(conditionExpression);
     return(this);
 }
예제 #28
0
 public TSelf AndWhere(SqlValueExpression <TEntity, bool> conditionExpression)
 {
     QueryBuilder.AndWhere(conditionExpression);
     return(_self);
 }
예제 #29
0
 public TSelf GroupBy <TValue>(SqlValueExpression <TEntity, TValue> expression)
 {
     QueryBuilder.GroupBy(expression);
     return(_self);
 }
예제 #30
0
 public SqlSelectBuilder <TEntity> GroupBy <TValue>(SqlValueExpression <TEntity, TValue> expression)
 {
     _groupByBuilder.GroupBy(expression);
     return(this);
 }