我想在视图模型中进行所有输入验证。
当访问数据库时,必须将视图模型数据复制到发送到数据库的模型中。
我担心数据可能会丢失,因为:
- Automapper 在某些情况下设置错误,因此属性不会复制到模型中
- 或者 Automapper 只是不适合所有场景,可能太复杂的 ViewModel
我的担忧是合理的还是我应该不在乎?
我想在视图模型中进行所有输入验证。
当访问数据库时,必须将视图模型数据复制到发送到数据库的模型中。
我担心数据可能会丢失,因为:
我的担忧是合理的还是我应该不在乎?
Automapper 在这种情况下完全没问题,我将它广泛用于此目的。如果您担心数据丢失,您应该不使用模型本身的数据注释验证来确保在持久化或调用其他服务之前拥有所需的数据。
此外,使用 Automapper 或仅手动代码映射完全确保您不会错过任何内容的唯一真正方法是一组好的单元测试。
我担心数据可能会丢失,因为: Automapper 在某些情况下设置错误,因此属性不会复制到模型中 或者 Automapper 不适合每种情况,可能太复杂 ViewModels
我认为您不太可能丢失数据。对于复杂的视图模型,您可以选择手动设置 Automapper 不会复制的特定属性。正如@feanz 所建议的,好的单元测试将为您提供所需的保证。**