Обработка ошибок на уровне домена или бизнес-логики (Vb.Net)

Я использую трехуровневый слой для своего проекта ASP.net. У меня есть таблица в базе данных «PaymentTypes», где я устанавливаю ограничение проверки для столбца PaymentTypeEN, поэтому пользователь не будет вводить повторяющиеся значения в этот столбец. У меня есть код на уровне домена (VB.net).

_

Public Function PaymentTypes_DML(ByVal PaymentTypeID As Long?, ByVal PaymentTypeEN As String, ByVal PaymentType As String, _
ByVal UserID As Long?, ByVal ActionCode As String) As Long
Dim iPaymentTypeID As Long? = PaymentTypeID
Dim sPaymentTypeEN As String = PaymentTypeEN
Dim sPaymentType As String = PaymentType
Dim iUserID As Long? = UserID
Dim sActionCode As String = ActionCode
Dim result As Long
result = CLng(PaymentTypesAdapter.DML(iPaymentTypeID, sPaymentTypeEN, sPaymentType, iUserID, sActionCode))
Return result
End Function

Нет, что происходит, когда на уровне представления (форма ASP.net), когда пользователь вводит повторяющуюся запись в столбец «PaymentTypeEN», страница ASP.net показывает ужасную ошибку ………… Я хочу обработать эти ошибки, показывая пользователю некоторые предопределенные сообщения в этом случае… .как …… «Вы не можете вводить повторяющиеся значения, пожалуйста, введите другое значение». ………………… .Как я могу обрабатывать ошибки на уровне домена или на уровне представления для ObjectDataSource .


person Malik Usman    schedule 19.02.2015    source источник


Ответы (1)


Проверка - это то, что часто приходится дублировать на нескольких уровнях. Помещение его в первую очередь на бизнес-уровне дает большое преимущество. Это позволяет при проверке в пользовательском интерфейсе использовать бизнес-логику для проверки независимо от уровня DAO.

Это означает, что ваше ограничение проверки, вероятно, не имеет значения, так как вам все равно придется дублировать его функциональность на бизнес-уровне.

Вероятно, вам придется создать метод validate (), который вызывает уровень данных, выполняя поиск других записей с соответствующим PaymentTypeEN.

person Rob Conklin    schedule 20.02.2015