Я пытаюсь проверить, что только одно из трех полей имеет значение с использованием FluentValidation.Использование 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");
Это повторяется для других 2 дат. Как и следовало ожидать, это выражается в сообщении за правило, которое соответствует.
Существуют и другие правила, поэтому есть способ выполнить другие правила, но не выполнить первый из этих трех? Я видел, где можно было установить CascadeMode.StopOnFirstFailure глобально, но я хочу, чтобы другие правила за пределами этих трех работали так, как они в настоящее время работают.
Объедините три правила в одном .custom (...) правила. – Maarten