.NET FluentValidation:针对相同类型的集合进行验证:重叠日期

时间:2015-08-09 20:00:48

标签: .net fluentvalidation

是否可以使用FluentValidation库验证集合。例如,检查新对象的开始/结束日期是否与同一类型的集合内的日期重叠?如果没有,是否有人有任何关于执行此类验证的建议?

1 个答案:

答案 0 :(得分:2)

如果要验证不应相互重叠的项目集合,可以使用我描述的here方法。当日期间隔相互重叠时,只需将IEqualityComparer实施更改为返回true

<强>更新

例如,如果您的集合与视图模型无关并放置在DB中,则可以使用返回业务逻辑结果的简单谓词(示例中使用的已知接口的构造函数注入):

public class ViewModelValidator
{
    public ViewModelValidator(IIntervalService intervalService)
    {
        RuleFor(model => model.NewInterval)
            .Must(interval => !intervalService.IsOverlapExistingIntervals(interval.StartDate, interval.EndDate));
    }
}
相关问题