クレーム管理ウィザードを備えたMVCWebアプリがあります(通常の注文入力に似ています)。クレームには複数のアイテムを含めることができ、各アイテムにはそれに関連する複数のファイルを含めることができます。
クレーム->アイテム->ファイル
新しいクレームを追加する際に、ユーザーが1つ以上のアイテムを追加できるようにし、それらのアイテムのファイルのアップロードも許可したいと考えています。ただし、クレームが実際に保存されるまですべてをメモリに保持する必要があります。これにより、ユーザーがクレームエントリを完了しないか破棄した場合でも、データベースとのやり取りは行われません。
セッションを介してデータレベルのメモリ内管理を処理できます。セッションでClaimオブジェクト(Claim.Itemsプロパティも含む)をシリアル化します。しかし、ファイルを管理する方法は?
<ClaimID> \ <ItemID>フォルダーにファイルを保存しますが、新しいクレームをメモリに作成している間、レコードがデータベースに保存されるまでIDはありません(どちらも自動インクリメントintです)。
今のところ、クレームが保存されるまで、ユーザーがファイルをアップロードすることを制限する必要があります。