Как избежать вставки повторяющихся записей на основе нескольких полей в коде EF в первую очередь - PullRequest
0 голосов
/ 01 марта 2019

предположим, что у меня есть такая сущность

public class Example
{
    [Key]
    public int ExampleId { get; set; }
    public string Field1 { get; set; }
    public string Field2 { get; set; }
    public string OtherField1 { get; set; }
    public string OtherField2 { get; set; }
}

Мне нужно сначала использовать код EF для создания таблицы.

Мне нужно запретить добавлять записи с дубликатами как Field1, так иПоле 2, нет проблем с дублированием OtherField1 и OtherField2.также нет проблем с записями, которые имеют только общее поле 1, но не оба поля 1 и 2.

Конечно, я могу проверять все другие записи на наличие дубликатов, но правильный способ - заставить базу данных генерировать ошибку.

Спасибо всем.

1 Ответ

0 голосов
/ 01 марта 2019

Просто проверьте наличие дубликата перед вставкой (при условии, что MyExample - это новая запись, которую вы хотите вставить):

if(!context.Examples.Any(x => x.Field1 == MyExample.Field1 && x.Field2 == MyExample.Field2)
      context.Examples.Add(MyExample);
      context.SaveChanges();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...