【发布时间】:2016-05-27 13:27:35
【问题描述】:
例如我有两个验证规则的验证器:
// Rule 1
RuleFor(o => o.Email).Must((email) => this.GetDataDataFromDB(email) != 0)
.WithMessage("User with provided Email was not found in database!");
// Rule 2
RuleFor(o => o.Email).Must((email) => this.GetDataDataFromDB(email) >= 1)
.WithMessage("There are multiple users with provided Email in database!");
如您所见,有两次使用相同方法调用数据库。如何调用一次并将数据重用于其他规则?
显示错误消息时的另一个问题:
RuleFor(o => o.Email).Must((email) => this.GetDataDataFromDB(email) >= 1)
.WithMessage("There are multiple users with following Email '{0}' in database!",
(model, email) => { return email; });
有没有更好的方法来显示错误消息,而不是一直编写那些 lambda 表达式来检索属性?就像将模型保存在某个地方,然后再使用它。
简单且易于实施的解决方案会很好!
【问题讨论】:
-
RuleFor(o => o.Email).Must((email) => this.GetDataDataFromDB(email)
标签: c# fluentvalidation