AutoMapper:Map <A,B>是否给出<B,A>?

Ian*_*ink 12 asp.net-mvc automapper

使用Automapper我创建一个简单的地图:

Mapper.CreateMap<MyCustomerDTO, YourCustomerDTO>()
Run Code Online (Sandbox Code Playgroud)

我经常需要走另一条路.我是否还需要以其他方式创建映射,或者Automapper是否会根据上述映射推断它?

Mapper.CreateMap<YourCustomerDTO, MyCustomerDTO>()   //Needed?
Run Code Online (Sandbox Code Playgroud)

Mig*_*uke 18

这是一个重复我需要创建automapper createmap两种方式吗?

请注意.ReverseMap() 这里的答案.

请注意,这.ReverseMap()是基本映射.如果需要使用选项(例如特定 ForMember映射),则需要创建自定义反向映射.


Beh*_*ili 14

不,你必须创建双向映射.双向映射的一个好帮手方法可能是:

 protected virtual void ViceVersa<T1, T2>()
        {
            Mapper.CreateMap<T1, T2>();
            Mapper.CreateMap<T2, T1>();
        }
Run Code Online (Sandbox Code Playgroud)

然后像这样使用它:

ViceVersa<T1, T2>();
Run Code Online (Sandbox Code Playgroud)

  • 请注意,现在可以使用"ReverseMap"选项"开箱即用"完成此操作. (23认同)