コード例 #1
0
        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()));
        }
コード例 #2
0
 public AndWhereClause(ConditionalQueryBuilder queryBuilder, string columnName)
 {
     this.queryBuilder = queryBuilder;
     resultString      = new StringBuilder("AND " + columnName);
 }