Ответ 1
Свободная проверка поддерживает условную проверку, просто используйте предложение When, чтобы проверить значение вторичного поля:
https://fluentvalidation.net/start#conditions
Задание условия с помощью When/Unless Методы When и Unless можно использовать для указания условий, определяющих, когда должно выполняться правило. Например, это правило для свойства CustomerDiscount будет выполняться, только если IsPreferredCustomer имеет значение true:
RuleFor (customer => customer.CustomerDiscount).GreaterThan(0).When(customer => customer.IsPreferredCustomer); '
Метод Unless является просто противоположностью Когда.
Вы также можете использовать операцию .SetValidator для определения пользовательского валидатора, который работает с условием NotEmpty.
RuleFor (customer => customer.CustomerDiscount).GreaterThan(0).SetValidator(New MyCustomerDiscountValidator)