モデルを保存する前にモデルを検証する最良の方法と、その長所と短所を知りたいです。サービス層とIValidatableObjectの間で疑問があります。
サービス層:
public class PersonService
{
    public void Insert(Person person)
    {
        if (!IsValid(person))
        {
            //something
        }
    }
}
IValidatableObject:
public class Person:IValidatableObject
{
    public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
    {
        if (!IsValid(this))
        {
            //something
        }
    }
}