在 ef 中定义验证顺序

define order of validations in ef

在带有数据注释的 ef 中,是否提供了定义验证顺序的方法?或者数据注释有固定顺序(按名称)?

这就是我的意思

public class ClassX {

    [ValidationB]
    public int Value1 {get;set;}

    [ValidationA]
    [ValidationB]
    public int Value2 {get;set;}
}

首先,它应该对所有字段执行 ValidationB,然后执行 ValidationA

我知道,使用 Fluent API 是可能的,但这不是我想要的方式。

您可以使用自 EF 4.1 以来可用的少数方法之一,例如

  • 实施 IValidatableObject
  • DbContext.ValidateEntity

这些将在调用 SaveChanges 时验证您的实体,它们允许您编写自定义验证逻辑,从而允许指定您想要的任何顺序。

您还可以显式触发验证并处理每个错误

Entity Framework Validation