【问题标题】:Customize mapping a property from destination to source and reverse map自定义将属性从目标映射到源和反向映射
【发布时间】:2018-04-21 09:34:42
【问题描述】:

为了保存对我的数据库的更改,我正在使用 Automapper 将字符串类型的属性从 destination 映射到 source 中的 int 类型的属性。

我尝试过ForMember,但它仅适用于源到目标。

那么如何将B 类中字符串类型的IpPort 属性映射到A 类中int 类型的名为IpPort 的属性。

A 类和 B 类的映射如下:

cf.CreateMap<classA, classB>().ReverseMap();

【问题讨论】:

标签: c# automapper


【解决方案1】:

正如AutoMapper主站所说,您可以使用ForPath自定义反向地图。

所以你可以在下面使用ForPath

 CreateMap<ClassA, ClassB>()
    .ForMember(d => dest.IpPort , opt => opt.MapFrom(src => int.Parse(src.IpPort )));
    .ReverseMap()
    .ForPath(s => s.IntPort, opt => opt.MapFrom(src => src.IntPort.ToString()));

或者您可以使用AferMap 并检查源类型和目标类型,例如

AutoMapper.CreateMap<ClassA, ClassB>().ReverseMap().AfterMap((source, destination) =>
        {
            object ob = (object)source;
           string type= ob.GetType().ToString();
            if(type == "ClassA")
                //Do something
             else
                //Do something
        })

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-09
    • 2010-11-18
    相关资源
    最近更新 更多