在Fluent Validation中,是否有一种方法可以从其他验证程序的属性规则例如外键复制现有的属性规则?

问题描述

我正在尝试在中心控制验证器规则。因此,我不想为外键属性编写相同的规则。例如:

EntityA的验证者

public class firstValidator : AbstractValidator<EntityA>
    {
        public firstValidator()
        {
            RuleFor(p=>p.Id).GreaterThanorEqualTo(0);

            RuleFor(p=>p.EntityBId).//Rules For EntityBId which defined already in another code file
        }
    }

EntityB的验证程序

public class secondValidator : AbstractValidator<EntityB>
    {
        public secondValidator()
        {
            RuleFor(p=>p.Id).// Rules for ID of EntityB is defined here I am trying to copy this rules for EntityA's EntityBId propery.

        }
    }

代码文件所示,我想将int secondValidator类的'EntityB.Id'属性验证规则复制到firstValidator类中的'EntityA.EntityBId'规则。有什么办法吗?

我的意思是复制,我的意思是,如果规则在secondValidator更改,规则也将在firstValidator更改。

解决方法

您可以查看以下链接,该链接说明了如何共享验证。 https://www.locktar.nl/programming/net-core/apply-same-validation-rules-on-different-classes-with-fluentvalidation/