我有一个名为EFErrors
的类,它实际上有一个可能出现在context.SaveChanges()
的错误列表......所以它定义如下:
private List<ValidationResult> _errors;
我正在用这样的错误填充它:
public EFErrors ValidateAndSave(){
var status = new EFErrors();
try
{
this._context.SaveChanges();
}
catch (DbEntityValidationException ex)
{
return status.SetErrors(ex.EntityValidationErrors);
}
}
现在ValidationResult实例有一个名为ErrorName的属性...例如,当我收到这样的错误时:
“字段用户名必须是带有的字符串或数组类型 最大长度为'30'。“
我想使用错误提供程序(或类似的东西)向用户显示此错误,但他并不是真的必须知道所有细节(这对我作为程序员很有用)。我只想指出重要的事情,例如。最多30个字符,允许的字符等,但不提及像上面引用文本中的真实列名。我想提供一个翻译,这是这里的主要目标。
我想我应该使用资源文件...但是我找不到其他设置来本地化错误。
如果重要的话,这是SetErrors
课程EFErrors
方法的声明:
public EFErrors SetErrors(IEnumerable<DbEntityValidationResult> errors)
{
_errors =
errors.SelectMany(
x => x.ValidationErrors.Select(y =>
new ValidationResult(y.ErrorMessage, new[] { y.PropertyName })))
.ToList();
return this;
}
public EFErrors SetErrors(IEnumerable<ValidationResult> errors)
{
_errors = errors.ToList();
return this;
}