public void RegisterTable(TableDeclarationClause declaration) { QueryRoot queryRoot; if (queryTables.TryGetValue(declaration, out queryRoot)) { return; } var queryEntity = CreateQueryEntity(null, declaration.Name); queryRoot = new QueryRoot(queryEntity, declaration); queryTables.Add(declaration, queryRoot); }
public override ISqlElement VisitTableDeclaration(TableDeclarationClause clause) { var context = contexts.Peek(); if (context.AreaColumn == null) { context.AreaColumn = new ColumnReferenceExpression { Name = PropertyNames.area, Table = clause } } ; return(base.VisitTableDeclaration(clause)); }
private IColumnSource RewriteTableIfNeeded(TableDeclarationClause declaration) { var queryRoot = queryEntityTree.Get(declaration); var subqueryRequired = queryRoot.subqueryRequired || queryRoot.additionalFields != null; if (!subqueryRequired) { declaration.Name = queryRoot.entity.mapping.DbTableName; return(declaration); } var stripResult = Strip(queryRoot.entity); var selectClause = new SelectClause { Source = queryEntityTree.GetTableDeclaration(queryRoot.entity) }; if (stripResult == StripResult.HasNoReferences) { selectClause.IsSelectAll = true; } else { AddJoinClauses(queryRoot.entity, selectClause); AddColumns(queryRoot, selectClause); if (queryRoot.additionalFields != null) { foreach (var c in queryRoot.additionalFields) { selectClause.Fields.Add(c); } } } return(new SubqueryTable { Alias = declaration.Alias ?? nameGenerator.GenerateSubqueryName(), Query = new SubqueryClause { Query = new SqlQuery { Unions = { new UnionClause { SelectClause = selectClause } } } } }); }
public JoinClause GetJoinSql(QueryEntity enumEntity) { if (!enumEntity.mapping.ObjectName.HasValue) { throw new InvalidOperationException("assertion failure"); } var declaration = new TableDeclarationClause { Name = "simple1c.enumMappings", Alias = nameGenerator.GenerateTableName() }; return(new JoinClause { Source = declaration, JoinKind = JoinKind.Left, Condition = new AndExpression { Left = new EqualityExpression { Left = new ColumnReferenceExpression { Name = "enumName", Table = declaration }, Right = new LiteralExpression { Value = enumEntity.mapping.ObjectName.Value.Name.ToLower() } }, Right = new EqualityExpression { Left = new ColumnReferenceExpression { Name = "orderIndex", Table = declaration }, Right = new ColumnReferenceExpression { Name = enumEntity.GetSingleColumnName("Порядок"), Table = queryEntityTree.GetTableDeclaration(enumEntity) } } } }); }
public virtual ISqlElement VisitTableDeclaration(TableDeclarationClause clause) { return(clause); }
public override ISqlElement VisitTableDeclaration(TableDeclarationClause clause) { builder.Append(clause.Name); WriteAlias(clause.Alias); return(clause); }
public override ISqlElement VisitTableDeclaration(TableDeclarationClause clause) { return(visit(clause)); }
public override ISqlElement VisitTableDeclaration(TableDeclarationClause clause) { contexts.Peek().Register(clause.GetRefName(), clause); return(base.VisitTableDeclaration(clause)); }
public override ISqlElement VisitTableDeclaration(TableDeclarationClause clause) { contexts.Peek().MainTable = clause; return(base.VisitTableDeclaration(clause)); }