/// <summary>
 /// 初始化 <see cref="SubqueryExpression"/> 类的新实例。
 /// </summary>
 /// <param name="nodeType"></param>
 /// <param name="type"></param>
 /// <param name="select"></param>
 public SubqueryExpression(DbExpressionType nodeType, Type type, SelectExpression select)
     : base(nodeType, type)
 {
     Select = select;
 }
Beispiel #2
0
 /// <summary>
 /// 使用子查询表达式初始化 <see cref="InExpression"/> 类的新实例。
 /// </summary>
 /// <param name="expression">IN 左边的列表达式。</param>
 /// <param name="select">子查询表达式。</param>
 public InExpression(Expression expression, SelectExpression select)
     : base(DbExpressionType.In, typeof(bool), select)
 {
     Expression = expression;
 }
Beispiel #3
0
 internal static SelectExpression SetOrderBy(this SelectExpression select, IEnumerable <OrderExpression> orderBy)
 {
     return(new SelectExpression(select.Alias, select.Columns, select.From, select.Where, orderBy, select.GroupBy, select.IsDistinct, select.Skip, select.Take, select.Segment, select.Having, select.IsReverse));
 }
Beispiel #4
0
 internal static SelectExpression SetWhere(this SelectExpression select, Expression where)
 {
     return(where != select.Where ? new SelectExpression(select.Alias, select.Columns, select.From, where, select.OrderBy, select.GroupBy, select.IsDistinct, select.Skip, select.Take, select.Segment, select.Having, select.IsReverse) : select);
 }
Beispiel #5
0
 internal static SelectExpression SetDistinct(this SelectExpression select, bool isDistinct)
 {
     return(select.IsDistinct != isDistinct ? new SelectExpression(select.Alias, select.Columns, select.From, select.Where, select.OrderBy, select.GroupBy, isDistinct, select.Skip, select.Take, select.Segment, select.Having, select.IsReverse) : select);
 }
Beispiel #6
0
 private static bool IsUniqueName(SelectExpression select, string name)
 {
     return(select.Columns.All(col => col.Name != name));
 }
Beispiel #7
0
 internal static SelectExpression SetColumns(this SelectExpression select, IEnumerable <ColumnDeclaration> columns)
 {
     return(new SelectExpression(select.Alias, columns.OrderBy(c => c.Name), select.From, select.Where, select.OrderBy, select.GroupBy, select.IsDistinct, select.Skip, select.Take, select.Segment, select.Having, select.IsReverse));
 }