我应该使用自动映射器从视图模型到模型对象吗?

本文关键字:模型 视图 对象 映射 我应该 | 更新日期: 2023-09-27 18:36:30

我想在视图模型中执行所有输入验证。

访问数据库时,视图模型数据必须复制到发送到数据库的模型中。

我担心的是数据可能会丢失,因为:

  • 自动映射器针对某些方案设置错误,因此属性不会复制到模型中
  • 或者自动映射器并不适合所有场景,可能太复杂了 视图模型

我的担忧是合理的还是我不应该关心这一点?

我应该使用自动映射器从视图模型到模型对象吗?

在这种情况下,自动映射器完全没问题,我为此目的广泛使用它。 如果您担心数据丢失,则不应在模型本身上使用数据注释验证,以确保在持久化或调用其他服务之前拥有所需的数据。

此外,使用Auotomapper或手动代码映射完全确保您不会错过任何内容的唯一真正方法是一组很好的单元测试。

我担心的是数据可能会丢失,因为: 自动映射器 是 针对某些方案的错误设置,因此不会复制属性 转到模型 或者自动映射器并不适合所有场景 也许太复杂了 视图模型

我认为您不太可能丢失数据。对于复杂 视图模型您可以选择手动设置特定属性 不会被自动映射程序复制。正如@feanz好单位所建议的那样 测试将为您提供所需的保证。