「ListItem」ビューに表示されている既存のアイテムのコレクションに、別の「NewItem」ビューに入力された新しいアイテムを追加する必要がある場合に、アプリケーションシナリオを解決するための優れたデザインパターンはありますか?
たとえば、EF4.1コードファーストアプリケーションを備えたASP.NET MVC3は製品のリストを管理し、各製品には部品のリストが含まれています。EFモデルには、いくつかの基本的なタイププロパティを持つProductオブジェクトと、Partオブジェクトのコレクションが含まれています。
ユーザーは、新しい製品をリストに追加し、NewProductViewを開いて一般的な製品情報を入力し、その後、この新しい製品の部品のコレクションを入力できます。パーツ情報は別のNewPartビューに収集され、新しい製品の既存のパーツコレクションに含める必要があります。主な課題は、NewProductビューとNewPartビューの間を行き来しながら、このパーツの一時的なコレクションを永続化するためのベストプラクティスは何ですか?
1つのオプションは、新しいパーツレコードをすぐにデータベースに保存することですが、親のProductオブジェクトはまだ構築されておらず、複数のデータベース呼び出しが必要になります。理想的には、パーツのコレクションを含む完全な新しいProductオブジェクトを1回の呼び出しで保存する必要があります。別のオプションは、一時的なパーツコレクションストレージにセッションを使用することですが、これが適切なアプローチであるかどうかは確かです。現時点では、Ajaxやその他のクライアントサイトテクノロジーを使用せずに、ビューからサーバーへの標準的な取得/投稿を行うだけのデザインパターンに興味があります。