public override DbExpression Visit(DbCaseExpression expression) { Check.NotNull(expression, "expression"); DbExpression result = expression; var newWhens = VisitExpressionList(expression.When); var newThens = VisitExpressionList(expression.Then); var newElse = VisitExpression(expression.Else); if (!ReferenceEquals(expression.When, newWhens) || !ReferenceEquals(expression.Then, newThens) || !ReferenceEquals(expression.Else, newElse)) { result = CqtBuilder.Case(newWhens, newThens, newElse); } NotifyIfChanged(expression, result); return(result); }