我正在像向导一样在多个表单/页面上更新记录。我需要在每个表单之后保存到数据库。然而,这只是部分记录。EF POCO 模型具有所有属性(字段)的所有数据注释,因此我怀疑当我保存此部分记录时会出错。
所以我不确定最简单的解决方案。
我想到的一些选择:
a) 为每个表单创建一个视图模型。视图模型而不是 EF 域模型上的数据注释。
b) 在控制器中保存特定属性而不是 SaveAll 以供查看,从而不会触发对非相关属性的验证。
c)其他一些解决方案......??
提前谢谢了,
我正在像向导一样在多个表单/页面上更新记录。我需要在每个表单之后保存到数据库。然而,这只是部分记录。EF POCO 模型具有所有属性(字段)的所有数据注释,因此我怀疑当我保存此部分记录时会出错。
所以我不确定最简单的解决方案。
我想到的一些选择:
a) 为每个表单创建一个视图模型。视图模型而不是 EF 域模型上的数据注释。
b) 在控制器中保存特定属性而不是 SaveAll 以供查看,从而不会触发对非相关属性的验证。
c)其他一些解决方案......??
提前谢谢了,
选项 1. 验证可能(尤其是在您的情况下)无论如何都属于视图模型。如果拥有部分填充的记录在技术上是有效的(数据库约束明智),那么这进一步证明了验证属于视图。
此外,通过将验证抽象到您的视图中,您允许其他消费应用程序拥有自己的验证逻辑。
额外的想法:
不过,我要说的是,作为一个旁注,像你正在做的那样部分地保存你的数据有点尴尬,除非你有一个很好的理由(我最初假设你这样做了),否则你可以考虑保留该数据其他地方(会话)并在向导结束时将其持久化。
这将允许更好、更合适的数据库约束,以实现更好的数据完整性。例如,如果整条记录不允许使用空名称,那么为了打破向导的提交而允许使用空值可能会导致更长期的麻烦。