Вопрос

Как я должен использовать шаблон единицы работы в следующем сценарии:

Я пишу приложение winforms.У меня есть один экран, где пользователь может редактировать один заказ.На этом экране пользователь может открыть другую форму, чтобы выбрать компанию доставки.Пользователь также может добавлять / редактировать существующие компании доставки в этой дочерней форме перед выполнением выбора.

Как я могу реализовать этот сценарий, используя шаблон единицы работы?В настоящее время у меня есть одна единица работы для экрана ввода заказа.Моей первой мыслью было включить дочернюю форму и в этот блок работы.Проблема в том, что изменения компании доставки должны сохраняться в дочерней форме .Но когда я сохраню изменения в компаниях-доставщиках, это также сохранит изменения в заказе.

Должен ли я создать вторую единицу работы для любых изменений в компаниях-поставщиках?В таком случае, как я могу сделать изменения в этой единице работы видимыми в первой единице работы?

Это было полезно?

Решение

Из вашего описания это звучит так, как будто у вас действительно есть две единицы работы здесь.Первый - "Ввод заказа", а второй - "Изменить компанию доставки".Каждая единица работы имеет какой-то базовый вид сеанса или транзакции.Чтобы перейти из дочерней формы к записи заказа, вам нужно будет отсоединить объект company от сеанса дочерней формы и повторно прикрепить его к родительской.Как на самом деле это реализовать, зависит от используемого вами уровня доступа к данным, но самый простой способ - передать идентификатор компании.

Другие советы

В настоящее время у меня есть одна единица работы для экрана ввода заказа.Проблема в том, что изменения компании доставки должны сохраняться в дочерней форме.

Как я могу реализовать этот сценарий, используя шаблон единицы работы?

  1. OrderEditForm и DeliveryCompanyCollectionEditForm должны разделять одно и то же DeliveryCompanyRepository это одна и та же единица работы.

  2. DeliveryCompanyRepository должны быть возвращены компании из базы данных + компании, которые были добавлены во время выполнения единицы работы.

Таким образом, новый объект компании доставки должен быть доступен в OrderEditForm без постоянных изменений.

Должен ли я создать вторую единицу работы для любых изменений в компаниях-поставщиках?В таком случае, как я могу сделать изменения в этой единице работы видимыми в первой единице работы?

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top