public static Expression TranslateExpression (
Expression expression,
ISqlPreparationContext context,
ISqlPreparationStage stage,
IMethodCallTransformerProvider provider)
{
ArgumentUtility.CheckNotNull ("expression", expression);
ArgumentUtility.CheckNotNull ("context", context);
ArgumentUtility.CheckNotNull ("stage", stage);
ArgumentUtility.CheckNotNull ("provider", provider);
var visitor = new SqlPreparationExpressionVisitor (context, stage, provider);
var result = visitor.VisitExpression (expression);
return result;
}