1

我正在像向导一样在多个表单/页面上更新记录。我需要在每个表单之后保存到数据库。然而,这只是部分记录。EF POCO 模型具有所有属性(字段)的所有数据注释,因此我怀疑当我保存此部分记录时会出错。

所以我不确定最简单的解决方案。

我想到的一些选择:

a) 为每个表单创建一个视图模型。视图模型而不是 EF 域模型上的数据注释。

b) 在控制器中保存特定属性而不是 SaveAll 以供查看,从而不会触发对非相关属性的验证。

c)其他一些解决方案......??

提前谢谢了,

4

1 回答 1

1

选项 1. 验证可能(尤其是在您的情况下)无论如何都属于视图模型。如果拥有部分填充的记录在技术上是有效的(数据库约束明智),那么这进一步证明了验证属于视图。

此外,通过将验证抽象到您的视图中,您允许其他消费应用程序拥有自己的验证逻辑。

额外的想法:

不过,我要说的是,作为一个旁注,像你正在做的那样部分地保存你的数据有点尴尬,除非你有一个很好的理由(我最初假设你这样做了),否则你可以考虑保留该数据其他地方(会话)并在向导结束时将其持久化。

这将允许更好、更合适的数据库约束,以实现更好的数据完整性。例如,如果整条记录不允许使用空名称,那么为了打破向导的提交而允许使用空值可能会导致更长期的麻烦。

于 2012-11-14T01:18:49.887 回答