我有一个多步注册过程,由一个域层中的单个对象,它们具有在属性上定义的验证规则。
当域被分割到多个视图时,我应该如何验证域对象,并且在发布时必须在第一个视图中部分保存该对象?
我考虑过使用会话,但这是不可能的,因为这个过程很长,数据量很大,所以我不想使用会话。
我考虑将所有数据保存在内存中的关系数据库中(使用与主db相同的模式),然后将数据刷新到主db,但是出现了一些问题,因为我应该在使用主db和内存中数据库的服务(视图中请求)之间路由。
我正在寻找一个优雅而干净的解决方案(更准确地说是一个最佳实践)。
更新和澄清:
达林,谢谢你周到的回答,这正是我到现在为止所做的。但顺便提一句,我有一个包含很多附件的请求,我设计了一个Step2View
例如,哪个用户可以异步地上传文档,但是这些附件应该保存在一个表中,该表与之前应该保存的另一个表具有引用关系。Step1View
.
因此,我应该将域对象保存在Step1
(部分),但我不能,因为部分映射到步骤1的视图模型的支持核心域对象无法保存,没有转换的道具Step2ViewModel
.