private void AddSingleColumn(SubqueryExpression subQuery) { if (subQuery.Select !.Columns.Count != 1) { throw new InvalidOperationException("Subquery has {0} columns: {1}".FormatWith(subQuery.Select.Columns.Count, subQuery.ToString())); } allColumnsUsed.GetOrCreate(subQuery.Select.Alias).Add(subQuery.Select.Columns[0].Name); }
protected virtual bool CompareSubquery(SubqueryExpression a, SubqueryExpression b) { if (a.NodeType != b.NodeType) { return(false); } switch ((DbExpressionType)a.NodeType) { case DbExpressionType.Scalar: return(CompareScalar((ScalarExpression)a, (ScalarExpression)b)); case DbExpressionType.Exists: return(CompareExists((ExistsExpression)a, (ExistsExpression)b)); case DbExpressionType.In: return(CompareIn((InExpression)a, (InExpression)b)); } return(false); }