예제 #1
0
        private void AddClause(MatchCondition matchCondition, AdoQueryPayload queryPayload)
        {
            queryPayload.AppendColumnName(matchCondition.Object);

            switch (matchCondition.Operator)
            {
            case DslOperator.Equals:
                queryPayload.Append(" = ");
                queryPayload.AddParameter(matchCondition);
                break;

            case DslOperator.NotEquals:
                queryPayload.Append(" <> ");
                queryPayload.AddParameter(matchCondition);
                break;

            case DslOperator.Like:
                queryPayload.Append(" LIKE '%' + ");
                queryPayload.AddParameter(matchCondition);
                queryPayload.Append(" + '%'");
                break;

            case DslOperator.NotLike:
                queryPayload.Append(" NOT LIKE '%' + ");
                queryPayload.AddParameter(matchCondition);
                queryPayload.Append(" + '%'");
                break;

            case DslOperator.In:
                queryPayload.Append(" IN (");
                queryPayload.AddParameter(matchCondition);
                queryPayload.Append(")");
                break;

            case DslOperator.NotIn:
                queryPayload.Append(" NOT IN (");
                queryPayload.AddParameter(matchCondition);
                queryPayload.Append(")");
                break;

            default:
                throw new Exception("DSL Operator not supported for SQL query generation: " + matchCondition.Operator);
            }

            queryPayload.AddNewLine();
        }