4
我有以下规则:将多个规则转化为一个规则
RuleFor(x => x.FromNumber).NotEmpty().GreaterThan(0).When(x => x.NumbersRequired).WithState(x => MyErrorEnum.FromNumberRequired);
酒店FromNumber
是int?
类型。上面的问题是CustomState
只设置为GreaterThan
。如果值为空或0,则CustomState
为空。
如果我改变上述以下规则仍然按预期工作:
RuleFor(x => x.FromNumber ?? 0).GreaterThan(0).When(x => x.NumbersRequired).WithState(x => MyErrorEnum.FromNumberRequired);
但是,有没有更好的办法,以这两个规则组合成一个规则,而不是使用空条件运算符?
我该如何实现这个规则:'RuleFor(x => x.ToNumber).NotEmpty()。GreaterThan(x => x.FromNumber)'? –
@ Ivan-MarkDebono使用另一个重载访问模型:'RuleFor(x => x.ToNumber).Muxt((model,x)=> x!= null && x> model.FromNumber);' –