我们最近实施了automapper,目前正在寻求优化从DTO到模型的分配值。目前我们正在做类似
的事情model.Property1 = dto.Property1;
model.SomePropertyType = dto.PropertyType;
model.Property2 = dto.Property2;
现在,对于所有Mapper类来说,这可能是一个相当长且重复的任务。 有没有办法在AutoMapper上简化这个?
答案 0 :(得分:0)
如果您使用的是Automapper
,那么您是否未定义地图(个人资料)?我相信,您可能已定义了这些,请使用这些来指示Automapper
如何将源对象映射到Target。
另一点Automapper
也基于命名约定,因此如果源和目标中都有相同的属性名称,那么它将自动自动化。所以你没有必要定义它的映射。要覆盖属性的映射(或其名称/类型不匹配),可以使用.ForMember
方法。
cfg.CreateMap<MyDTO, MyModel>()
.ForMember(destination => destination.PropertyType,
opts => opts.MapFrom(source => source.SomePropertyType ));
您可以在here了解Automapper
。
现在在获取映射对象的代码中,使用它像
Mapper.Map<MyModel>(object of MyDTO);