Мне интересно, каков наилучший способ проверки уникальности значения поля представления в наборе сущностей: до или после обновления до уровня персистентности?
У задействованного поля БД есть уникальное ограничение, и его таблица сопоставлена с моделью EF.
Я вижу два способа проверки уникальности значений в наборе сущностей:
- до сохранение изменений в дБ (во время обновления модели или путем добавления пользовательских аннотаций к модели)
- после сохранение изменений в дБ (путем обработки в хранилище или контроллере исключения UpdateException, генерируемого постоянным уровнем)
При первом методе мне нужно запросить базу данных для проверки уникальности, поэтому для любого обновления представления потребуется как выбор базы данных, так и обновление базы данных.
При втором способе дополнительный выбор не требуется, но трудно определить тип ошибки и поле, вызывающее ошибку.
Я бы предпочел метод 2, но проблема определения неудачной вставки / обновления из-за уникального ограничения вынуждает меня выбрать метод 1.
Или есть другой способ?