在IValidatableObject.Validate方法中访问数据库是个好主意吗?

时间:2013-12-20 10:25:09

标签: c# entity-framework validation asp.net-mvc-4

我有一个模特课。相关数据库表对两个字段(例如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。

更新

您是否建议使用单独的验证器类而不是使用验证属性?

https://stackoverflow.com/a/16679307/1131855

0 个答案:

没有答案