我有一个模特课。相关数据库表对两个字段(例如Column1和Column2)具有唯一约束。我不确定在保存对象之前验证对象的最佳方法是什么。
我正在考虑实现IValidatableObject并在Validate方法中进行此验证。 这是个好主意吗?我不确定,因为它需要从实体类中的DB读取数据。
public class Class1 :IValidatableObject
{
[Key]
public int ID { get; set; }
[Required]
public int Column1 { get; set; }
[Required]
public int Column2 { get; set; }
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
using (DatabaseContext db = new DatabaseContext())
{
//access DB to check if this combination of Column1 and Column2 already exists
}
}
}
我正在使用MVC4和EF 4.4。
更新
您是否建议使用单独的验证器类而不是使用验证属性?