1
有一個類和我的驗證是這樣的:流利的驗證,必須自定義驗證
public ValidationResult Validate(CustomerType customerType)
{
CustomerType Validator validator = new CustomerTypeValidator();
validator.RuleFor(x => x.Number).Must(BeUniqueNumber);
return validator.Validate(customerType);
}
public bool BeUniqueNumber(int number)
{
//var result = repository.Get(x => x.Number == customerType.Number)
// .Where(x => x.Id != customerType.Id)
// .FirstOrDefault();
//return result == null;
return true;
}
的CustomerTypeValidator是一個基本的驗證類驗證字符串屬性。
我還添加了一個新規則來檢查數據庫中的數字是否是唯一的。我在這個課上做,因爲有一個參考資料庫。驗證器類沒有這樣的參考。
這裏的問題是BeUniqueNumber方法應該有一個CustomerType參數。但是,當我這樣做時,我在上面的RuleFor行上出現錯誤,因爲'Must'需要一個int作爲參數。
有沒有辦法解決這個問題?
我也試過。它不工作,因爲'必須'需要 –
2014-11-05 13:14:51
@ Ivan-MarkDebono這很奇怪,你確定嗎?我只是嘗試了一些非常相似的東西,Predicate方法只需要一個'T',而不是'TProperty'。你確定你在做'x =>'x,而不是'x => x.Number'嗎?我還用另一種替代方法更新了我的答案。 – danludwig 2014-11-05 13:18:52
我已經嘗試了兩種方式,他們不會工作。如果沒有這樣做的話,我寧願不傳遞存儲庫。 – 2014-11-05 13:23:55