FluentValidation:仅验证已更改的属性

时间:2016-09-20 08:16:54

标签: c# fluentvalidation

我想只验证模型上已更改的属性,不幸的是,默认情况下,流畅的验证似乎在调用Validator.Validate(instanceToValidate)时验证具有规则的每个属性

我已尝试将PropertyChain设置为仅包含我要验证的属性并构建新的ValidationContext - 它仍然验证所有规则。

有没有办法使用流畅的验证来实现这一目标?

由于

1 个答案:

答案 0 :(得分:1)

所以修复非常简单

var rule = _validator.CreateDescriptor();
var rules = rule.GetRulesForMember(e.PropertyName);
_validationResult = new ValidationResult(rules.SelectMany(x => x.Validate(new ValidationContext(_target))).ToList());

查找已更改的属性的规则,并根据该规则集验证目标对象。