AutoMapper双向属性映射

这是我在做什么。

Mapper.CreateMap<AViewModel,AModel>()
    .ForMember(x => x.Foo,x => x.MapFrom(src => src.Bar))
     ...
    .IgnoreAllNonExisting()
    .ReverseMap()
    .ForMember(x => x.Bar,x => x.MapFrom(src => src.Foo))
     ...
    .IgnoreAllNonExisting();

但就我而言,我有太多的属性无法匹配。

感觉好像有重复的行,只是改变了每个属性的顺序。

有没有办法做到这一点,但没有“重复”行?

例如

将Foo映射到Bar,并将Bar映射到Foo(Foo <=> Bar

* AutoMapper版本-3.3.1

winniezrk 回答:AutoMapper双向属性映射

AutoMapper支持按约定进行映射,因此它自然会将AViewModel中的Foo属性与AModel中的Foo属性匹配,因为它们共享相同的名称。另外,您只需调用一次.IgnoreAllNonEsisting()。

一种解决方案是匹配AViewModel中的Foo数据和AModel中的Foo数据,以及Bar属性的数据相同,以便您只需执行以下操作:

Mapper.CreateMap<AViewModel,AModel>()
    .IgnoreAllNonExisting()
    .ReverseMap();

我建议您仔细阅读getting started AutoMapper文档

本文链接:https://www.f2er.com/3159365.html

大家都在问