public override SubqueryTable VisitSubqueryTable(SubqueryTable subqueryTable) { var result = base.VisitSubqueryTable(subqueryTable); contexts.Peek().Register(result.Alias, result); return(result); }
public override SubqueryTable VisitSubqueryTable(SubqueryTable subqueryTable) { Visit(subqueryTable.Query); if (string.IsNullOrWhiteSpace(subqueryTable.Alias)) { var message = string.Format("Subquery must have an alias but did not: [{0}]", subqueryTable); throw new InvalidOperationException(message); } builder.AppendFormat(" as {0}", subqueryTable.Alias); return(subqueryTable); }
public void RegisterSubquery(SubqueryTable clause) { QueryRoot queryRoot; if (queryTables.TryGetValue(clause, out queryRoot)) { return; } var subqueryProperties = CreateSubqueryProperties(clause.Query.Query.Unions.First().SelectClause); var mapping = new TableMapping(clause.Alias, clause.Alias, TableType.Main, subqueryProperties); var queryEntity = new QueryEntity(mapping, null); queryRoot = new QueryRoot(queryEntity, clause); queryTables.Add(clause, queryRoot); }
public override SubqueryTable VisitSubqueryTable(SubqueryTable clause) { var context = contexts.Peek(); if (context.AreaColumn == null) { context.AreaColumn = new ColumnReferenceExpression { Name = null, Table = clause } } ; return(base.VisitSubqueryTable(clause)); }
public virtual SubqueryTable VisitSubqueryTable(SubqueryTable subqueryTable) { subqueryTable.Query = (SubqueryClause)Visit(subqueryTable.Query); return(subqueryTable); }
public override SubqueryTable VisitSubqueryTable(SubqueryTable subqueryTable) { return(visit(base.VisitSubqueryTable(subqueryTable))); }
public override SubqueryTable VisitSubqueryTable(SubqueryTable subqueryTable) { contexts.Peek().MainTable = null; return(base.VisitSubqueryTable(subqueryTable)); }