Теоретически вам даже не нужно проверять наличие дубликата ключа, ваша клиентская сторона должна быть подключена для самостоятельного извлечения такой информации, полностью сегментированной из пользовательского ввода.Например: иметь список таких элементов в раскрывающемся списке или любой другой выборочный список.
Компенсационные действия или компенсационные команды следует использовать только в том случае, если система не смогла выполнить процесс , и, таким образом, ей необходимо откатить несколько команд или все, что было сделано при сборке, до сбоя.точка.
Например, предположим, что система должна вставить параметр, единственное событие, которое должна вызывать эта команда, должно быть что-то вроде «SettingInsertedEvent».Итак, предположим, что это событие не было инициировано, и мы можем дать команду системе компенсировать это и откатить все, что было сделано в этом процессе.
Ваша команда может также реализовать интерфейс, который выполняет проверку для вас черезDataManager.Или вы можете просто создать dataModel без ключа и сделать автоинкремент таблицы, чтобы вам даже не пришлось полностью беспокоиться о сценарии.( Я уверен, что вы уже знаете, что dataModel - это просто кодовое представление существующей таблицы на вашем сервере баз данных, связанной с ней ORM, еще одной фундаментальной частью любого современного приложения. )