public override ExpressionElement Convert(IExpressionConverter converter, MethodCallExpression method) { var arg = method.Arguments[method.SkipMethodChain(0)]; var array = arg as NewArrayExpression; var orderBy = new VText(); orderBy.Add("ORDER BY"); var sort = new VText() { Separator = "," }; sort.AddRange(1, array.Expressions.Select(e => converter.Convert(e)).ToList()); orderBy.Add(sort); return orderBy; }
public override ExpressionElement Convert(IExpressionConverter converter, MethodCallExpression method) { var partitionBy = new VText(); partitionBy.Add("PARTITION BY"); var elements = new VText() { Indent = 1, Separator = "," }; var array = method.Arguments[0] as NewArrayExpression; foreach (var e in array.Expressions.Select(e => converter.Convert(e))) { elements.Add(e); } partitionBy.Add(elements); return partitionBy; }
public override ExpressionElement Convert(IExpressionConverter converter, MethodCallExpression method) { var v = new VText(); var overMethod = method; v.Add(overMethod.Method.Name.ToUpper() + "("); v.AddRange(1, overMethod.Arguments.Skip(1). Where(e => !(e is ConstantExpression)). //Skip null. Select(e => converter.Convert(e)).ToArray()); return v.ConcatToBack(")"); }