2016-09-20 83 views
0

我想只驗證已在我的模型上更改的屬性,但不幸的是,在默認情況下,流暢的驗證似乎驗證調用Validator.Validate時的每個屬性(instanceToValidate)FluentValidation:只驗證已更改的屬性

我試着設置PropertyChain只包含我想驗證的屬性並構造一個新的ValidationContext - 它仍然驗證所有的規則。

有沒有辦法使用流利驗證來實現這一點?

感謝

+0

你說的是FluentValidation,而不是FluentAssertions,不是嗎? –

+0

是的,謝謝你指出! – antinutrino

回答

1

所以解決方法是相當簡單

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

查找已更改屬性的規則(S)和驗證針對規則集的目標對象。