문제

다음 시나리오에서 작업 단위를 사용하는 방법 :

WinForms 앱을 작성하고 있습니다. 사용자가 단일 주문을 편집 할 수있는 화면이 하나 있습니다. 이 화면에서 사용자는 배달 회사를 선택하기 위해 다른 양식을 열 수 있습니다. 사용자는 선택을하기 전에이 어린이 양식으로 기존 배달 회사를 추가/편집 할 수 있습니다.

작업 단위 패턴을 사용 하여이 시나리오를 구현하려면 어떻게해야합니까? 현재 주문 입력 화면에 대한 작업 단위가 하나 있습니다. 나의 첫 번째 생각은이 작업 단위에도 아동 양식을 포함시키는 것이 었습니다. 문제는 배달 회사 변경이 아동 형태에있을 때 지속되어야한다는 것입니다. 그러나 배달 회사의 변경 사항을 지속하면 순서대로 변경 사항도 지속됩니다.

배달 회사에 편집을 위해 두 번째 작업 단위를 만들어야합니까? 이 경우 첫 번째 작업 단위에서 해당 작업 단위의 변경 사항을 어떻게 변경할 수 있습니까?

도움이 되었습니까?

해결책

당신의 설명에서 그것은 당신이 여기에 두 단위의 작업이있는 것처럼 들립니다. 첫 번째는 "주문 입력"이고 두 번째는 "배달 회사 편집"입니다. 각 작업 단위에는 기본 세션 또는 거래가 있습니다. 아동 양식에서 주문 항목까지 의사 소통하려면 아동 양식 세션에서 회사의 대상을 부모에게 다시 붙잡아 야합니다. 실제로 구현하는 방법이 작업은 사용중인 데이터 액세스 계층에 따라 다르지만 회사의 ID를 통과하는 쉬운 방법입니다.

다른 팁

현재 주문 입력 화면에 대한 작업 단위가 하나 있습니다. 문제는 배달 회사 변경이 아동 형태에있을 때 지속되어야한다는 것입니다.

작업 단위 패턴을 사용 하여이 시나리오를 구현하려면 어떻게해야합니까?

  1. OrderEditForm 그리고 DeliveryCompanyCollectionEditForm 동일하게 공유해야합니다 DeliveryCompanyRepository 그것은 동일한 작업 단위를 공유합니다.

  2. DeliveryCompanyRepository 작업 중에 추가 된 데이터베이스 + 회사의 회사를 반환해야합니다.

이렇게하면 새로운 배달 회사 객체를 사용할 수 있어야합니다. OrderEditForm 지속적인 변화없이.

배달 회사에 편집을 위해 두 번째 작업 단위를 만들어야합니까? 이 경우 첫 번째 작업 단위에서 해당 작업 단위의 변경 사항을 어떻게 변경할 수 있습니까?

병렬로 사용되는 두 개 이상의 작업 단위는 데이터 동기화에 특별한주의를 기울여야합니다. 한 작업 단위가 커밋되면 일부 중재자는 일반적으로 다른 답변에 명시된 것처럼 다른 모든 작업 단위를 업데이트합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top