gokhan572 Ответов: 1

Мой вопрос связан с беглой проверкой уникальных записей.


- Привет!

Я создал метод проверки, который будет получать предупреждение, когда я пытаюсь создать дубликат записи. Например, "имя свойства должно быть уникальным", но у меня уже были пустые значения в базе данных, и когда я пытаюсь сохранить второе пустое значение, то снова появляется предупреждение "имя свойства должно быть уникальным". Поэтому я не могу создавать свои пустые записи из-за этой проверки.

Я прошу метод проверки или улучшить мою проверку, чтобы добавить дополнительные свойства, область действия которых "если значение empyt или null, не применяйте этот метод / или Кроме ..." в противном случае пустые значения не могут быть продублированы, но я хочу сохранить их также.
Спасибо.

Что я уже пробовал:

protected override bool IsValid(PropertyValidatorContext context)
  {
      using (var dbContext = new DbContext ())
      {

          var dataId = context.Instance.GetType().GetProperty("Id").GetValue(context.Instance);

          var result = dbContext.Set<TEntity>().Where($"{context.PropertyName} == @0 And Id!=@1", context.PropertyValue, dataId).Any();



          return !result;

      }
  }

1 Ответов

Рейтинг:
1

Richard Deeming

Просто добавьте проверку на пустое значение в начале вашего метода проверки. Напр.:

protected override bool IsValid(PropertyValidatorContext context)
{
    if (context.PropertyValue == null) return true;
    
    ...