AutoMapper,在自定义类型转换器中调用Mapper.Map()?

时间:2012-08-09 12:25:09

标签: c# automapper

我目前正在使用AutoMapper进行测试,但我目前的情况是属性名称彼此不匹配,因此需要自定义类型转换。 但是,当我使用自定义类型转换器时,我必须手动映射所有其他属性?我不能在类型转换器中调用另一个Map,因为这会导致溢出。

这是不需要的,因为每个模型最多有3个模型特定属性不匹配,所以我希望自动映射其他属性。

有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:2)

您不需要使用自定义类型转换器来映射类,其中有一些属性只是名称不匹配。自定义类型转换器适用于您需要as they say,“完全控制一种类型到另一种类型的转换”。

使用CreateMap()设置地图,然后使用ForMember()设置一些额外规则,如下所示:

Mapper.CreateMap<Person, Customer>()
    .ForMember(dest => dest.Surname, opt => opt.MapFrom(src => src.LastName))
    .ForMember(dest => dest.DateOfBirth, opt => opt.MapFrom(src => src.DOB));

这会将LastNameDOB从源Person类映射到目标Surname类的DateOfBirthCustomer属性。< / p>