小编Edu*_*rdo的帖子

.NET Core - 在模型中获取 DbContext

我需要在模型中获取 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");
  }
}
Run Code Online (Sandbox Code Playgroud)

上面的示例在保存记录时会生成错误 (DataAnnotation)。可以只检查日期、长度等。

但是我必须查询数据库上的一些记录。为此,不能将数据库上下文传递给模型。

我读过的所有 SO 主题都解释了如何使用 Remote 和 JS 进行验证,将验证放在控制器上。我不想要这个。

最相关的 SO 主题是:在自定义验证属性中使用数据库上下文(通过添加上下文它仍然不起作用)

任何人都可以帮助我将 ApplicationDbContext 传递给模型以执行查询并使用 ValidationAttribute 对其进行验证吗?

c# asp.net-mvc data-annotations .net-core

3
推荐指数
1
解决办法
1588
查看次数

标签 统计

.net-core ×1

asp.net-mvc ×1

c# ×1

data-annotations ×1