You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
|
using System.Linq.Expressions;
|
|
|
|
|
|
|
|
|
|
namespace Connected.Expressions;
|
|
|
|
|
|
|
|
|
|
public enum JoinType
|
|
|
|
|
{
|
|
|
|
|
CrossJoin = 0,
|
|
|
|
|
InnerJoin = 1,
|
|
|
|
|
CrossApply = 2,
|
|
|
|
|
OuterApply = 3,
|
|
|
|
|
LeftOuter = 4,
|
|
|
|
|
SingletonLeftOuter = 5
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public sealed class JoinExpression : DatabaseExpression
|
|
|
|
|
{
|
|
|
|
|
public JoinExpression(JoinType joinType, Expression left, Expression right, Expression? condition)
|
|
|
|
|
: base(DatabaseExpressionType.Join, typeof(void))
|
|
|
|
|
{
|
|
|
|
|
Join = joinType;
|
|
|
|
|
Left = left;
|
|
|
|
|
Right = right;
|
|
|
|
|
Condition = condition;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public JoinType Join { get; }
|
|
|
|
|
public Expression Left { get; }
|
|
|
|
|
public Expression Right { get; }
|
|
|
|
|
public new Expression? Condition { get; }
|
|
|
|
|
}
|