我应该使用ViewModel中的AutoMapper来建模对象

时间:2012-06-08 10:31:56

标签: c# asp.net-mvc model viewmodel automapper

我想在viewmodel中进行所有输入验证。

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

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

  • 某些情况下错误地设置了自动映射器,因此属性不会复制到模型
  • 或Automapper不适合每个场景可能过于复杂的ViewModels

我的担忧是否合理,或者我不应该关心它?

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

  

我担心的是数据可能会丢失,因为:Automapper是   错误地设置某些场景,因此不会复制属性   到模型或Automapper不适合每个场景   也许是太复杂的ViewModels

     

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