Существует ли своего рода шаблон проектирования или методология удаления записи на БД из пользовательского интерфейса? - PullRequest
1 голос
/ 11 апреля 2011

Существует ли какая-либо общепринятая методология или тип шаблона или модели, когда речь идет об удалении записи из пользовательского интерфейса, которая существует в базе данных?

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

Конфликт с ограничением REFERENCE

Как обрабатывать исключения или уведомлять пользователя о сбое (как передать информацию о сбое BL в пользовательский интерфейс; перехват исключений или некоторый объект отчета и т. Д.) И более или менее наиболее распространенные проблемы, связанные с контекстом удаления.

Ответы [ 4 ]

1 голос
/ 11 апреля 2011
  1. Удалить ссылку в веб-интерфейсе должен открыть «Удалить страницу».
  2. При GET «Удалить страницу» должен проверить предварительные условия, такие как существующие связанные записи.Не отображать форму, если проверка не удалась.
  3. POST для «Удалить страницу» должен снова подтвердить предварительные условия и удалить запись базы данных в ОДНОЙ транзакции базы данных
  4. Если вторая проверка не пройдена или возникло исключение базы данных, отобразится общая ошибкасообщение.
0 голосов
/ 11 апреля 2011

Для проблем с базами данных, которые вы описываете, рассмотрите стратегию централизованного управления исключениями, чтобы исключения фиксировались и создавались последовательно на уровне данных. Вы должны:

  • Идентификация исключений, которые должны быть перехвачены и обработаны на уровне доступа к данным (например, тупики, проблемы с подключением могут быть решены в DAL)
  • Тем не менее, исключения, которые вы упоминаете, такие как нарушения ограничений, должны быть обнаружены пользователем для разрешения
  • Рассмотрим метод SaveCustomer () в вашем слое данных. Если обнаружено специфическое исключение (не базовый класс исключений), дайте ему всплыть на уровень вашего бизнеса, который вызывает уровень данных или оказание услуг. Затем бизнес-уровень может собирать любые обнаруженные исключения и генерировать пользовательское исключение, которое может обрабатываться соответствующим образом вашим пользовательским интерфейсом.
0 голосов
/ 11 апреля 2011

Перво-наперво, я думаю, вам нужно отделить ваш DataLayer от фактического внутреннего хранилища данных.Вы могли бы использовать NHibernate или Entity Framework от Microsoft, чтобы упростить ORM (Object Relational Mapping).Так что ваши данные, отображаемые в вашем графическом интерфейсе, представляют собой объект, который представляет данные в БД.

Вы можете использовать блок проверки библиотек MS Entreprise для проверки.

Также зависит, используете ли вы Winforms или WPF.Вы должны убедиться, что какой-то сервис / модель обрабатывает все операции CRUD, а не GUI, чтобы вы могли протестировать бит обновления с помощью модульных тестов

0 голосов
/ 11 апреля 2011

Когда вы удаляете запись, вы можете сделать несколько вещей:

  1. Проверьте, синхронизируется ли элемент в базе данных. (этот шаг может быть необязательным в зависимости от сценария)
  2. Выполнить удаление.
  3. Если удалить успешно, то обновите графический интерфейс, в случае неудачи перехватите исключение и не обновляйте / не изменяйте графический интерфейс.

Что вы используете для своего бизнес-уровня, и какие API вы используете для получения и хранения данных в вашем коде?

...