Exemple #1
0
            public void Build(ISqExtensionBuilder builder)
            {
                var separator = builder.GetExpression(0);
                var arguments = (NewArrayExpression)builder.Arguments[1];

                if (arguments.Expressions.Count == 0)
                {
                    builder.ResultExpression = new SqlExpression(typeof(string), "''");
                }
                else if (arguments.Expressions.Count == 1)
                {
                    builder.ResultExpression = IsNullExpression(builder.ConvertExpressionToSql(arguments.Expressions[0]));
                }
                else
                {
                    var items = arguments.Expressions.Select(e =>
                                                             IsNullExpression(StringConcatExpression(separator, builder.ConvertExpressionToSql(e)))
                                                             );

                    var concatenation =
                        items.Aggregate(StringConcatExpression);

                    builder.ResultExpression = TruncateExpression(concatenation, separator);
                }
            }
Exemple #2
0
            public void Build(ISqExtensionBuilder builder)
            {
                var args = Array.ConvertAll(builder.Arguments, x => builder.ConvertExpressionToSql(x));

                builder.ResultExpression = new SqlSearchCondition(new SqlCondition(false,
                                                                                   new SqlPredicate.ExprExpr(args[0], SqlPredicate.Operator.Overlaps, args[1], false)));
            }
Exemple #3
0
            public void Build(ISqExtensionBuilder builder)
            {
                var args = Array.ConvertAll(builder.Arguments, x => builder.ConvertExpressionToSql(x));

                builder.ResultExpression = new SqlSearchCondition(new SqlCondition(false,
                                                                                   new SqlPredicate.Between(args[0], true, args[1], args[2])));
            }
            public void Build(ISqExtensionBuilder builder)
            {
                Linq.Builder.TableBuilder.PrepareRawSqlArguments(builder.Arguments[0],
                                                                 builder.Arguments.Length > 1 ? builder.Arguments[1] : null,
                                                                 out var format, out var arguments);

                var memberType = builder.Member.GetMemberType();

                var sqlArguments = arguments.Select(e => builder.ConvertExpressionToSql(e)).ToArray();

                builder.ResultExpression = new SqlExpression(memberType, format, Precedence.Primary, sqlArguments);
            }
Exemple #5
0
            public void Build(ISqExtensionBuilder builder)
            {
                var arguments = (NewArrayExpression)builder.Arguments[1];

                if (arguments.Expressions.Count == 0 && builder.BuilderValue != null)
                {
                    builder.ResultExpression = new SqlExpression(typeof(string), "''");
                }
                else if (arguments.Expressions.Count == 1 && builder.BuilderValue != null)
                {
                    builder.ResultExpression = IsNullExpression((string)builder.BuilderValue, builder.ConvertExpressionToSql(arguments.Expressions[0]));
                }
                else
                {
                    var items = arguments.Expressions.Select(builder.ConvertExpressionToSql);
                    foreach (var item in items)
                    {
                        builder.AddParameter("argument", item);
                    }
                }
            }
Exemple #6
0
            public void Build(ISqExtensionBuilder builder)
            {
                var args = Array.ConvertAll(builder.Arguments, x => builder.ConvertExpressionToSql(x));

                builder.ResultExpression = new SqlRow(args);
            }