Как поймать ошибки БД и перевести их в значительную информацию для бизнес-слоя?

Обычно я должен вставить некоторые данные в БД, и его нельзя вставить, потому что таблица имеет ограничения, препятствующие мне этому. С приложением я разрабатываю, некоторые бизнес-правила (например, «нет двух человек с тем же идентификационным типом и числом», или «продуктом XXXX уже зарегистрированы»), используются уникальными или композиционными ключами и другими механизмами. Хотя я Знайте, что СУБД бросает сообщение об ошибке (как ORA-6346 или) Я не знаю, как поймать эти ошибки в .NET 4.0 и перевести их на ошибку, которая может быть значимой для бизнес-слоя.

в качестве примера: I «Увидев механизм вставки, который задает дБ, если регистр уже существует, а затем продолжается вставлять данные, если это не так. Я хочу сделать это только с помощью запроса и отвлечения ошибки нарушения ограничения базы данных, потому что первый способ Мне кажется очень неэффективным (БД может предупредить вас о дублировании с ошибкой).

Как CA и я реализую что-то подобное?

Примечание. Я думаю, что можно получить исключение из базы данных и использовать свой код ORA-XXXX, чтобы попытаться выяснить, что произошло. Я не помню с точностью, если сообщение об ошибке показывает, какое ограничение (имя ...) было сломано, но код бизнес-слоя может содержать константы с именами ограничения и, от них, знают, что произошло.

13
задан APC 13 September 2011 в 11:14
поделиться