【问题标题】:Fluent validation, set the minimum value in case property has value less then流畅的验证,设置最小值以防属性值小于
【发布时间】:2021-08-19 14:40:02
【问题描述】:

我正在使用流利的验证来验证某些模型。

public class CarModelValidator : AbstractValidator<CarModel>
{
    public CarModelValidator ()
    {
        RuleFor(x => x.Name).NotEmpty();
        // RuleFor(x => x.NrOfDoors)....
    }
}

是否可以验证CarModel 和它的属性NrOfDoors,如果它小于2 将值设置为2。或者流畅的验证不是为了那个?只是为了验证模型并通知用户而不是设置值吗?

【问题讨论】:

  • 最佳实践是通过任何类库或工具进行的验证只完成验证任务。

标签: c# .net fluentvalidation


【解决方案1】:

最佳实践是通过任何类库或工具进行验证完成验证任务,并且它基于Separation_of_concerns 模式。

但是,如果您需要确保 NrOfDoors 属性的最大值为 2,您可以使用这样的完整属性:

public class CarModel
{
    private int nrOfDoors;

    public int NrOfDoors
    {
        get { return nrOfDoors; }
        set
        {
            if (value > 2)
                nrOfDoors = 2;
            else
                nrOfDoors = value;
        }
    }
}

【讨论】:

    【解决方案2】:

    我认为RuleFor(x =&gt; x.NrOfDoors).GreaterThanOrEqualTo(2) 应该可以解决问题

    【讨论】:

    • 这不是我问题的答案。您没有在此代码中的任何位置设置值
    猜你喜欢
    • 1970-01-01
    • 2015-05-12
    • 2022-07-06
    • 2014-09-14
    • 2019-01-20
    • 2019-02-09
    • 2021-04-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多