private static Expression GetTranslationForMcsGetString(MethodInfo methodInfo, IReadOnlyCollection <Expression> args) { var targetObjectExpr = methodInfo.IsStatic ? args.FirstOrDefault() : null; var arguments = new ReadOnlyCollection <Expression>(args.Skip(1).ToList()); var newExprs = McsGetStringLinqTranslator.TranslateParametersMcsGetString(methodInfo, targetObjectExpr, arguments); return(new SqlFunctionExpression("McsGetString", methodInfo.ReturnType, "dbo", newExprs)); }
public override HqlTreeNode BuildHql(MethodInfo method, Expression targetObjectExpr, ReadOnlyCollection <Expression> arguments, HqlTreeBuilder treeBuilder, IHqlExpressionVisitor visitor) { var exprs = McsGetStringLinqTranslator.TranslateParametersMcsGetString(method, targetObjectExpr, arguments); var parameters = exprs.Select(e => visitor.Visit(e).AsExpression()); HqlTreeNode result = treeBuilder.MethodCall("mcs_get_string", parameters); return(result); }