MVC5 将两个可为空的日期与流畅的验证进行比较

MVC5 comparing two nullable dates with fluent validation

如何在流畅的验证中编写规则来检查两个可为空的日期,因为开始日期需要早于结束日期。

我的思路是

RuleFor(c => c.StartDate)
            .NotEmpty()

如果开始日期不为空且结束日期不为空则比较

像这样-

RuleFor(ac => ac.StartDate)
     .NotEmpty().WithMessage("*Required")

 RuleFor(ac => ac.EndDate)
     .NotEmpty().WithMessage("*Required")
     .GreaterThan(r => r.StartDate);

注-

数据类型必须相同才能进行比较。

或者更方便 source-

 RuleFor(m => m.StartDate)
            .NotEmpty()
            .WithMessage("Start Date is Required");

        RuleFor(m => m.EndDate)
            .NotEmpty().WithMessage("End date is required")
            .GreaterThan(m => m.StartDate.Value)
                            .WithMessage("End date must after Start date")
            .When(m => m.StartDate.HasValue);