当属性名称不同时使用Automapper

我们正在使用Codeplex的AutoMapper,对我来说,目标对象的所有属性都以’Field’结尾,即cityField,源对象只有city。

我可以使用下面的代码来实现,但所有的属性都只是’Field’的后缀,有20个属性。

.ForMember(dest => dest.cityField, opt => opt.MapFrom(origin => origin.City)); 

是否有任何其他方法可以在映射时忽略“字段”字,以便它可以在不使用.ForMember()的情况下映射20次?

您可以尝试识别后缀:

 Mapper.Initialize(cfg => { cfg.RecognizePostfixes("Field"); cfg.CreateMap(); }); 

识别前缀对于配置文件也是本地的,如果它只是一组适用于它的地图。

我认为你必须实现自己的INamingConvention来解决这个问题。