public InExpression( [NotNull] AliasExpression operand, [NotNull] IReadOnlyList <Expression> values) : base(typeof(bool)) { Check.NotNull(operand, nameof(operand)); Check.NotNull(values, nameof(values)); Operand = operand; Values = values; }
public virtual AliasExpression AddToOrderBy( [NotNull] string column, [NotNull] IProperty property, [NotNull] TableExpressionBase table, OrderingDirection orderingDirection) { Check.NotEmpty(column, nameof(column)); Check.NotNull(property, nameof(property)); Check.NotNull(table, nameof(table)); var columnExpression = new ColumnExpression(column, property, table); var aliasExpression = new AliasExpression(columnExpression); if (_orderBy.FindIndex(o => o.Expression.TryGetColumnExpression()?.Equals(columnExpression) ?? false) == -1) { _orderBy.Add(new Ordering(aliasExpression, orderingDirection)); } return(aliasExpression); }
public virtual void AddToOrderBy([NotNull] IEnumerable <Ordering> orderings) { Check.NotNull(orderings, nameof(orderings)); foreach (var ordering in orderings) { var aliasExpression = ordering.Expression as AliasExpression; var columnExpression = ordering.Expression as ColumnExpression; if (aliasExpression != null) { var newAlias = new AliasExpression(aliasExpression.Alias, aliasExpression.Expression); _orderBy.Add(new Ordering(newAlias, ordering.OrderingDirection)); } else if (columnExpression != null) { _orderBy.Add(new Ordering(new AliasExpression(columnExpression), ordering.OrderingDirection)); } else { _orderBy.Add(ordering); } } }
public virtual int AddToProjection([NotNull] ColumnExpression columnExpression) { Check.NotNull(columnExpression, nameof(columnExpression)); var projectionIndex = _projection .FindIndex(e => { var ce = e.TryGetColumnExpression(); return(ce?.Property == columnExpression.Property && ce?.TableAlias == columnExpression.TableAlias); }); if (projectionIndex == -1) { var aliasExpression = new AliasExpression(columnExpression); if (Alias != null) { var currentAlias = columnExpression.Name; var uniqueAlias = CreateUniqueProjectionAlias(currentAlias); if (!string.Equals(currentAlias, uniqueAlias, StringComparison.OrdinalIgnoreCase)) { aliasExpression.Alias = uniqueAlias; } } projectionIndex = _projection.Count; _projection.Add(aliasExpression); } return(projectionIndex); }
public virtual void AddToOrderBy([NotNull] IEnumerable<Ordering> orderings) { Check.NotNull(orderings, nameof(orderings)); foreach (var ordering in orderings) { var aliasExpression = ordering.Expression as AliasExpression; var columnExpression = ordering.Expression as ColumnExpression; if (aliasExpression != null) { var newAlias = new AliasExpression(aliasExpression.Alias, aliasExpression.Expression); _orderBy.Add(new Ordering(newAlias, ordering.OrderingDirection)); } else if (columnExpression != null) { _orderBy.Add(new Ordering(new AliasExpression(columnExpression), ordering.OrderingDirection)); } else { _orderBy.Add(ordering); } } }
public virtual AliasExpression AddToOrderBy( [NotNull] string column, [NotNull] IProperty property, [NotNull] TableExpressionBase table, OrderingDirection orderingDirection) { Check.NotEmpty(column, nameof(column)); Check.NotNull(property, nameof(property)); Check.NotNull(table, nameof(table)); var columnExpression = new ColumnExpression(column, property, table); var aliasExpression = new AliasExpression(columnExpression); if (_orderBy.FindIndex(o => o.Expression.TryGetColumnExpression()?.Equals(columnExpression) ?? false) == -1) { _orderBy.Add(new Ordering(aliasExpression, orderingDirection)); } return aliasExpression; }
public virtual int AddToProjection([NotNull] ColumnExpression columnExpression) { Check.NotNull(columnExpression, nameof(columnExpression)); var projectionIndex = _projection .FindIndex(e => { var ce = e.TryGetColumnExpression(); return ce?.Property == columnExpression.Property && ce?.TableAlias == columnExpression.TableAlias; }); if (projectionIndex == -1) { var aliasExpression = new AliasExpression(columnExpression); if (Alias != null) { var currentAlias = columnExpression.Name; var uniqueAlias = CreateUniqueProjectionAlias(currentAlias); if (!string.Equals(currentAlias, uniqueAlias, StringComparison.OrdinalIgnoreCase)) { aliasExpression.Alias = uniqueAlias; } } projectionIndex = _projection.Count; _projection.Add(aliasExpression); } return projectionIndex; }
public virtual int AddToProjection([NotNull] AliasExpression aliasExpression) { return(AddAliasToProjection(aliasExpression.Alias, aliasExpression.Expression)); }