在模型部分 Class 中有条件地禁用验证

Conditionally Disable Validation in Model Partial Class

我有部分 class 具有验证属性 -

[MetadataTypeAttribute(typeof(tblPersonMetadata))]
public partial class tblPerson
{
}

public class tblPersonMetadata
{
   [MaxLength(80)]
   public string PER_MiddleName { get; set; }

   [Required(ErrorMessage = "Enter your Gender")]
   public string PER_Gender { get; set; }
}

tblPerson 是 Entity Framework 中用于多个位置的实体。在某些位置,我想将 PER_MiddleName 和 PER_Gender 留空。

在某些对象中使​​用 tblPerson 时,如何有选择地禁用验证?

我的问题是我需要一个属性库来处理 [RequiredIf()]。我得到了一个很好的 - https://github.com/JaroslawWaliszko/ExpressiveAnnotations。效果令我满意。