我们有一个 MVC Web 应用程序,它有一个索赔管理向导(类似于典型的订单条目)。声明可以有多个项目,每个项目可以有多个与之相关的文件。
声明 --> 项目 --> 文件
在添加新声明时 - 我们希望允许用户向其中添加一个或多个项目,并允许为这些项目上传文件。但是我们希望将所有内容都保存在内存中,直到实际保存 Claim - 这样如果用户没有完成 Claim 条目或丢弃它,则不会进行数据库交互。
我们能够通过会话处理数据级别的内存管理。我们在 session 中序列化 Claim 对象(也包括 Claim.Items 属性)。但是如何管理文件?
我们将文件存储在 < ClaimID >\< ItemID > 文件夹中,但是在内存中创建新声明时,在将记录保存在数据库中之前,我们没有任何 ID(两者都是自动增量 int)。
目前,我们必须限制用户在保存声明之前上传文件。