protected override Expression VisitBinaryExpression (BinaryExpression expression)
{
ArgumentUtility.CheckNotNull ("expression", expression);
if (IsNullConstant (expression.Left))
{
if (expression.NodeType == ExpressionType.Equal)
return VisitExpression (new SqlIsNullExpression (expression.Right));
else if (expression.NodeType == ExpressionType.NotEqual)
return VisitExpression (new SqlIsNotNullExpression (expression.Right));
else
return base.VisitBinaryExpression (expression);
}
else if (IsNullConstant (expression.Right))
{
if (expression.NodeType == ExpressionType.Equal)
return VisitExpression (new SqlIsNullExpression (expression.Left));
else if (expression.NodeType == ExpressionType.NotEqual)
return VisitExpression (new SqlIsNotNullExpression (expression.Left));
else
return base.VisitBinaryExpression (expression);
}
else
return base.VisitBinaryExpression (expression);
}