Я пытаюсь проверить, что только одно из трех полей имеет значение, используя FluentValidation.
RuleFor(x => x.Date1)
.Must(x => !x.HasValue)
.When(x => x.Date2.HasValue || x.Date3.HasValue)
.WithMessage("Select only one of Date 1, Date 2 and Date 3");
Это повторяется для двух других дат. Как и следовало ожидать, это создает сообщение для каждого правила, которое соответствует.
Есть и другие правила, поэтому есть ли способ выполнить другие правила, но не выполнить первое из этих трех? Я видел, где можно глобально установить CascadeMode.StopOnFirstFailure, но я хочу, чтобы другие правила, кроме этих трех, работали так, как они работают сейчас.