Хитрость заключается в том, чтобы создать валидатор для вашей сущности, а не для одного из свойств этой сущности. Вы можете написать самопроверку вашей сущности следующим образом:
[HasSelfValidation]
public class MyEntity
{
public int CustomerId { get; set; }
public string Name { get; set; }
[SelfValidation]
public void ValidateRange(ValidationResults results)
{
bool isUnique = [query the database here]
if (!isUnique)
{
results.AddResult(new ValidationResult(
"CustomerId and Name are not unique", this, "", "", null));
}
}
}
Я должен сказать, что я не знаком с набором функций VAB 3.1, поэтому я не уверен на 100%, что это работает на 3.1. Это работает на 4.1, хотя. Если вам не нравится самопроверка, вы также можете написать собственный валидатор и подключить его в файле конфигурации. Посмотрите этот ответ на стекопоток для получения дополнительной информации о том, как это сделать.