0

クライアントではbreeze.jsを使用し、サーバーではBreeze.WebApiを使用しています。メソッドとドメイン サービスを使用して EF POCO エンティティを構築します。ビジネス ドメインを問題なく使用するサーバー上で実行されているバックグラウンド プロセスがいくつかあります。

問題は、EFContextProvider を使用してクライアント側の変更をサーバーに保存するときに、ドメイン メソッドとサービスを使用する方法がわからないことです。

例: クライアントが新しいタスクを追加し、この新しいタスクが既存の請求書ごとに新しいアクションを生成するように指定する場合(簡単に SaveOptions.Tag を実行)、ドメイン サービス AddActionsToInvoices を呼び出して既存の請求書に必要なアクションを追加する必要があります。最後に、新しいタスクとすべての新しいアクションは、同じトランザクション中に保存する必要があります。

通常、ドメインを操作できるようにするには、ドメイン メソッドを呼び出すときに集約ルートが完全にフェッチされ、すべての変更が最後に保持されるようにする必要があります。

4

1 に答える 1

0

それはかなりオープンエンドの質問です。少なくとも一部の保存は、変更されたデータをデータベースに保存する以上のことを行うというあなたの一般的なポイントを理解していると思います。それらは、たまたまデータを保存する、それ自体がビジネス プロセスです。

これらすべてを単一の「SaveChanges」Web API メソッドで実行することを試みることができます。しかし、それは間違っているように感じます。すぐに、SaveChangesメソッドはヘルパー メソッドへの巨大なディスパッチャになります。

「名前付き保存」を見たことがありますか?この機能は、シナリオのように聞こえるように設計されています。「タグ」を送信して、タグの値に基づいて適切なサーバー側のメソッドにディスパッチしようとするよりも優れていると思います。

于 2013-08-27T08:23:43.917 に答える