Проверка повторяющейся записи в ASP.NET 5 MVC 6

Использование asp.net 5, MVC 6, сначала код, entity Framework 7, бета-версия 8.

Я понимаю, что некоторую проверку можно выполнить с помощью аннотаций к свойствам, например. Тип данных, минимальные, максимальные значения и сценарии jquery, но я не уверен, как при проверке кода дублирующаяся запись попадает в базу данных, например, предотвращает дублирование регистрации электронной почты в форме.

Есть ли какая-либо аннотация, которую я могу использовать для этого свойства моей модели, или мне нужно что-то закодировать в моем контроллере для обработки этой пользовательской проверки? Кто-нибудь может поделиться примером?


person Ian Forsyth    schedule 03.11.2015    source источник


Ответы (1)


В EF7 нет никакой магии для предотвращения дублирования значений в таблице. Единственный способ проверить дубликаты — это обратиться к базе данных. Лучший способ сделать это — использовать уникальное ограничение. Это может быть выражено как уникальный индекс. Любая попытка вставить повторяющуюся запись должна вызвать исключение.

Тем не менее, вы можете настроить EF7 для распознавания уникального индекса в вашей базе данных в методе OnConfiguring. См. раздел Индексы: настройка модели в документации по EF7.

        modelBuilder.Entity<User>()
            .Index(b => b.Email)
            .Unique();
person natemcmaster    schedule 03.11.2015
comment
для EF7: builder.Entity‹User›() .HasIndex(b =› b.Email) .IsUnique(true) - person Sergey; 10.01.2016