public override SqlFragment Visit(DbArithmeticExpression expression)
{
if (expression.ExpressionKind == DbExpressionKind.UnaryMinus)
{
ListFragment f = new ListFragment();
f.Append("-(");
f.Append(expression.Arguments[0].Accept(this));
f.Append(")");
return(f);
}
string op = String.Empty;
switch (expression.ExpressionKind)
{
case DbExpressionKind.Divide:
op = "/"; break;
case DbExpressionKind.Minus:
op = "-"; break;
case DbExpressionKind.Modulo:
op = "%"; break;
case DbExpressionKind.Multiply:
op = "*"; break;
case DbExpressionKind.Plus:
op = "+"; break;
default:
throw new NotSupportedException();
}
return(VisitBinaryExpression(expression.Arguments[0], expression.Arguments[1], op));
}