public string Compile(ITableJoin value, SelectQuery query, IQueryParameterManager parameters)
        {
            var join = value as GroupedTableJoin;

            var joinCompiler = new TableJoinTableJoinCompiler()
            {
                NewLine = null
            };
            var nestedJoinSql = string.Empty;

            foreach (var nested in join.GroupedJoins)
            {
                nestedJoinSql += joinCompiler.Compile(nested, query, parameters) + " ";
            }

            var result = string.Format("\n\t {0} ({1} AS {2} {3}) ON {2}.{4} = {5}.{6} {7} ",
                                       join.JoinType.ToSqlString(),
                                       join.JoinTable.TableName,
                                       join.JoinTable.Alias,
                                       nestedJoinSql,
                                       join.JoinField.Name,
                                       join.ForeignColumn.TableAlias,
                                       join.ForeignColumn.Field.Name,
                                       join.Extra);

            return(result);
        }
Ejemplo n.º 2
0
        public string Compile(ITableJoin value, SelectQuery query, IQueryParameterManager parameters)
        {
            var join = value as TableJoin;

            var result = string.Format("{7} {0} {1} AS {2} ON {2}.{3} = {4}.{5} {6} ",
                                       join.JoinType.ToSqlString(),
                                       join.JoinTable.TableName,
                                       join.JoinTable.Alias,
                                       join.JoinField.Name,
                                       join.ForeignColumn.TableAlias,
                                       join.ForeignColumn.Field.Name,
                                       join.Extra,
                                       NewLine);

            return(result);
        }
Ejemplo n.º 3
0
 public void AddJoin(ITableJoin join)
 {
     this.joins.Add(join.Table1.TableName, join);
 }