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); } }
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))); }
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); }
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); } } }
public void Build(ISqExtensionBuilder builder) { var args = Array.ConvertAll(builder.Arguments, x => builder.ConvertExpressionToSql(x)); builder.ResultExpression = new SqlRow(args); }