public IQueryFactoryResult Process(IQueryContainer container) { var joinBuilder = new StringBuilder(); joinBuilder.Append($"{_joinAs.JoinType} JOIN {TargetTable.GetAlias().EnsureAlias()} AS {Alias.GetAlias().EnsureAlias()}" + $" ON {Alias.GetAlias().EnsureAlias()}.{TargetColumn.ColumnName.EnsureAlias()}" + $" = " + $"{SourceTable.GetAlias().EnsureAlias()}.{SourceColumn.ColumnName.EnsureAlias()}"); var parameters = new List <IQueryParameter>(); if (Condition != null) { var condQueryBuilder = new ConditionalQueryBuilder(); condQueryBuilder.QueryBuilder.Append(" "); foreach (var conditionCondition in Condition.Conditions) { conditionCondition.Render(condQueryBuilder, null); } joinBuilder.Append(condQueryBuilder.QueryBuilder); parameters.AddRange(condQueryBuilder.QueryParameters); } return(new QueryFactoryResult(joinBuilder.ToString(), parameters.ToArray())); }
public AndWhereClause(ConditionalQueryBuilder queryBuilder, string columnName) { this.queryBuilder = queryBuilder; resultString = new StringBuilder("AND " + columnName); }