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