Проверять наличие дубликатов при обновлении с EF Core? - PullRequest
0 голосов
/ 28 января 2020

В настоящее время я создаю приложение с уникальными столбцами

public class Category
{
    public string ID { get; set; }
    public string Name { get; set; }
}

, где Имя объявлено уникальным в моем методе DBContext.OnModelCreating ().

Это работает как задумано.

С помощью вставки я могу проверить наличие дубликатов примерно так:

if(_context.Category.Any(c => c.Name == category.Name))
{
     ViewData["Message"] = "A category with that name already exist";
     return View();
}

Теперь моя проблема заключается в том, чтобы при редактировании этой сущности как проверить, существует ли отредактированное имя в том случае, если оно редактируется, чтобы соответствовать другой существующей строке в БД?

Чтобы объяснить это лучше, давайте предположим, что у меня есть 2 записи в моей таблице.

  • A: ID = 1, Name = " Штаны "
  • B: ID = 2, Имя =" Рубашки "

Если я тогда попытаюсь переименовать в Имя в" Рубашки ", я получу двойную ошибку. Как мне справиться с этим вариантом использования?

1 Ответ

0 голосов
/ 28 января 2020

Я думаю, вы можете сделать то же самое при обновлении с дополнительной проверкой, чтобы убедиться, что имя для обновления не совпадает с существующим именем:

if(_context.Category.Any(c => c.Name == newNameAfterUpdate && c.Name != category.Name))
{
     ViewData["Message"] = "A category with that name already exist";
     return View();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...