我需要在模型中获取ApplicationDbContext。
我正在创建一个ValidationAttribute。该验证将检查数据库上的某些记录,并在必要时生成错误。
public class MyModel
{
public int? ID { get; set; }
[MyValidationForName]
public string Name { get; set; }
}
public class MyValidationForName : ValidationAttribute
{
protected ValidationResult IsValid(object value, ValidationContext validationContext)
{
/* code here */
return new ValidationResult("This field contains an error");
}
}
上面的示例在保存记录时会生成错误(DataAnnotation)。仅检查日期,长度等是可以的。
但我必须查询数据库中的某些记录。为了执行此操作,不能将DB上下文传递到模型中。
我阅读过的所有SO主题都解释了如何使用Remote和JS进行验证,在Controller中放置验证。我不想这样做。
最相关的SO主题是:Using DB Context in a Custom Validation Attribute(通过添加上下文仍然无法工作)。
有人可以帮助我将ApplicationDbContext传递给模型以执行查询并使用ValidationAttribute进行验证吗?