2

次のシナリオでは、作業単位パターンをどのように使用すればよいですか。

私はwinformsアプリを書いています。ユーザーが 1 つの注文を編集できる画面が 1 つあります。この画面で、ユーザーは別のフォームを開いて配送会社を選択できます。ユーザーは、選択を行う前に、この子フォームで既存の配送会社を追加/編集することもできます。

Unit of work パターンを使用してこのシナリオを実装するにはどうすればよいですか? 現在、注文入力画面の作業単位は 1 つです。私が最初に考えたのは、この作業単位にも子フォームを含めることでした。問題は、子フォームで配送会社の変更を永続化する必要があることです。しかし、配送会社の変更を永続化すると、注文の変更も永続化されます。

配送業者を編集するために 2 番目の作業単位を作成する必要がありますか? その場合、その作業単位の変更を最初の作業単位で表示するにはどうすればよいですか?

4

2 に答える 2

1

あなたの説明からすると、ここには実際に 2 つの作業単位があるように聞こえます。1つ目は「注文入力」、2つ目は「配送業者の編集」です。各作業単位には、基礎となる何らかの種類のセッションまたはトランザクションがあります。子フォームから注文エントリに通信するには、会社のオブジェクトを子フォームのセッションから切り離し、親に再接続する必要があります。これを実際に実装する方法は、使用しているデータ アクセス レイヤーによって異なりますが、簡単な方法は、会社の ID を渡すことです。

于 2009-01-26T07:46:52.440 に答える
0

現在、注文入力画面の作業単位は 1 つです。問題は、子フォームでは配送会社の変更を永続化する必要があることです。

Unit of work パターンを使用してこのシナリオを実装するにはどうすればよいですか?

  1. OrderEditForm同じ作業単位をDeliveryCompanyCollectionEditForm共有する同じものを共有する必要があります。DeliveryCompanyRepository

  2. DeliveryCompanyRepositoryデータベースから会社 + 作業単位中に追加された会社を返す必要があります。

OrderEditFormこのようにして、変更を永続化せずに、新しい配送会社オブジェクトを利用できるようにする必要があります。

配送業者を編集するために 2 番目の作業単位を作成する必要がありますか? その場合、その作業単位の変更を最初の作業単位で表示するにはどうすればよいですか?

並行して使用される 2 つ以上の作業単位には、データ同期で特別な注意が必要です。1 つの作業単位がコミットされると、他の回答で既に述べたように、一部のメディエーターは通常、他のすべての作業単位を更新します。

于 2015-03-07T16:51:07.477 に答える