В случае, если у вас есть уникальные ограничения, я думаю, что лучший вариант - это выполнить проверку самостоятельно.
Проверка правильности дублирования значения в таблице выходит за рамки ORM.
ORM работает, проходя валидацию, которую вы обрабатываете, когда выдает исключение, и вы должны вести себя соответственно.
Давайте немного подумаем о том, что нужно для проверки, если значение будет дубликатом в базе данных перед выполнением команды вставки ...
1. Вы должны будете выполнить SELECT для каждого столбца, который имеет уникальное ограничение, проверяющее его, у него уже есть значение, которое собирается вставить.
2. Если нет, выполните ВСТАВКУ.
3. Если да, бросить исключение? ... это именно то, что происходит сейчас ...
Итак, пусть это дует! :)
Просто будьте готовы к тому, что он взорвется (оберните сохранение в Try / Catch) и действуйте соответственно.
Ура!
Alex