Проверка уникального значения: до или после обновления до уровня персистентности? - PullRequest
0 голосов
/ 04 мая 2011

Мне интересно, каков наилучший способ проверки уникальности значения поля представления в наборе сущностей: до или после обновления до уровня персистентности? У задействованного поля БД есть уникальное ограничение, и его таблица сопоставлена ​​с моделью EF. Я вижу два способа проверки уникальности значений в наборе сущностей:

  1. до сохранение изменений в дБ (во время обновления модели или путем добавления пользовательских аннотаций к модели)
  2. после сохранение изменений в дБ (путем обработки в хранилище или контроллере исключения UpdateException, генерируемого постоянным уровнем)

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

При втором способе дополнительный выбор не требуется, но трудно определить тип ошибки и поле, вызывающее ошибку.

Я бы предпочел метод 2, но проблема определения неудачной вставки / обновления из-за уникального ограничения вынуждает меня выбрать метод 1.

Или есть другой способ?

1 Ответ

0 голосов
/ 04 мая 2011

Предпочтительным и рекомендуемым способом проверки уникального ограничения является пользовательский интерфейс с помощью пользовательского атрибута DataAnnotation.с помощью этого метода вы должны написать небольшой код, но это то, что все сайты делали для проверки ограничения уникальности.Однако asp.net mvc 3 предоставляет RemoteAttribute из коробки для проверки ограничения уникальности.я бы порекомендовал использовать первый метод, потому что некоторые крошечные вызовы ajax не окажут заметного влияния на производительность при условии, что вы организовали это должным образом.

...