当属性名称不同时使用Automapper

时间:2010-02-02 17:22:47

标签: c# properties automapper

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

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

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

在映射时是否有其他方法可以忽略'Field'字样,因此它可以在不使用.ForMember()的情况下进行映射20次?

2 个答案:

答案 0 :(得分:18)

您可以尝试识别后缀:

Mapper.Initialize(cfg => {
    cfg.RecognizePostfixes("Field");
    cfg.CreateMap<Source, Dest>();
});

识别前缀也适用于个人资料本地,如果它只是一组适用的地图。

答案 1 :(得分:3)

我认为您必须实施自己的INamingConvention才能解决此问题。