/// <summary> /// Adds a SQL LEFT OUTER JOIN to this SelectExpression. /// </summary> /// <param name="tableExpression"> The target table expression. </param> /// <param name="projection"> A sequence of expressions that should be added to the projection. </param> public virtual JoinExpressionBase AddLeftOuterJoin( [NotNull] TableExpressionBase tableExpression, [NotNull] IEnumerable <Expression> projection) { Check.NotNull(tableExpression, nameof(tableExpression)); Check.NotNull(projection, nameof(projection)); var outerJoinExpression = new LeftOuterJoinExpression(tableExpression); _tables.Add(outerJoinExpression); _projection.AddRange(projection); return(outerJoinExpression); }
private bool Equals(LeftOuterJoinExpression other) => string.Equals(Alias, other.Alias) && Equals(QuerySource, other.QuerySource) && Equals(Predicate, other.Predicate);
public virtual JoinExpressionBase AddOuterJoin( [NotNull] TableExpressionBase tableExpression, [NotNull] IEnumerable<Expression> projection) { Check.NotNull(tableExpression, nameof(tableExpression)); Check.NotNull(projection, nameof(projection)); var outerJoinExpression = new LeftOuterJoinExpression(tableExpression); _tables.Add(outerJoinExpression); _projection.AddRange(projection); return outerJoinExpression; }