左右 DTO 到对象 AutoMapper- C#

Left right DTO to object AutoMapper- C#

我们最近实施了自动映射器,目前正在寻求优化从 DTO 到模型的赋值。目前我们正在做类似

的事情
model.Property1 = dto.Property1;
model.SomePropertyType = dto.PropertyType;
model.Property2 = dto.Property2; 

现在这对所有 Mapper 类 来说可能是一个相当长且重复的任务。 有没有办法在 AutoMapper 上简化这个?

如果您正在使用 Automapper 那么您是否没有定义地图(配置文件)?我相信,您可能已经定义了那些,所以请使用它们来指导 Automapper 如何将源对象映射到目标。

另一点 Automapper 也基于命名约定,因此如果源和目标中的 属性 名称相同,那么它会自动自动映射。所以你不必为它定义映射。要覆盖 属性(或其 name/type 不匹配)的映射,您可以使用 .ForMember 方法。

cfg.CreateMap<MyDTO, MyModel>()

                .ForMember(destination => destination.PropertyType,

               opts => opts.MapFrom(source => source.SomePropertyType ));

您可以在 here 阅读有关 Automapper 的信息。

现在在获取映射对象的代码中,像

一样使用它
Mapper.Map<MyModel>(object of MyDTO);