示例#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);
 }