public override void AppendSql([NotNull] StringBuilder builder, [NotNull] GeneratorContext filterParams)
        {
            if (IsValue)
            {
                var value = Value;
                if (value is null)
                {
                    builder.Append("NULL");
                }
                else
                {
                    var paramName = filterParams.Add(Value);
                    builder.Append(Dialect.GetParameterReference(paramName));
                }
            }
            else
            {
                if (!_skipBrackets)
                {
                    builder.Append(Dialect.OpenBracket);
                }

                _left.AppendSql(builder, filterParams);

                builder.Append(" = ");

                _right.AppendSql(builder, filterParams);

                if (!_skipBrackets)
                {
                    builder.Append(Dialect.CloseBracket);
                }
            }
        }
예제 #2
0
        /// <inheritdoc />
        public override void AppendSql(StringBuilder builder, GeneratorContext filterParams)
        {
            if (!SkipBrackets)
            {
                builder.Append(Dialect.OpenBracket);
            }

            if (_emptyEnumOperation != null)
            {
                _emptyEnumOperation.AppendSql(builder, filterParams);
            }
            else
            {
                // ReSharper disable once PossibleNullReferenceException
                _left.AppendSql(builder, filterParams);

                builder.Append(" " + Dialect.InKeyword + " ");

                builder.Append(Dialect.OpenBracket);

                // ReSharper disable once PossibleNullReferenceException
                using var enumerator = _values.GetEnumerator();
                IFilterOperation first = null;
                while (enumerator.MoveNext())
                {
                    var current = enumerator.Current;

                    if (first != null && current != null)
                    {
                        builder.Append(", ");
                    }
                    else
                    {
                        first = enumerator.Current;
                    }

                    current?.AppendSql(builder, filterParams);
                }

                builder.Append(Dialect.CloseBracket);
            }

            if (!SkipBrackets)
            {
                builder.Append(Dialect.CloseBracket);
            }
        }
        public override void AppendSql([NotNull] StringBuilder builder, [NotNull] GeneratorContext filterParams)
        {
            if (!SkipBrackets)
            {
                builder.Append(Dialect.OpenBracket);
            }

            _left.AppendSql(builder, filterParams);

            builder.Append(" " + Dialect.LikeKeyword + " ");

            _right.AppendSql(builder, filterParams);

            if (!SkipBrackets)
            {
                builder.Append(Dialect.CloseBracket);
            }
        }
 public override void AppendSql([NotNull] StringBuilder builder, [NotNull] GeneratorContext filterParams)
 {
     builder.Append(Dialect.NotKeyword + " " + Dialect.OpenBracket);
     _expression.AppendSql(builder, filterParams);
     builder.Append(Dialect.CloseBracket);
 }