美文网首页
18.AutoMapper 之条件映射(Conditional

18.AutoMapper 之条件映射(Conditional

作者: 做人生的CEO | 来源:发表于2019-01-12 23:39 被阅读4次

    条件映射(Conditional Mapping)

    AutoMapper 允许你给属性添加条件,只有在条件成立的情况下该成员才会被映射。

    这可以用在尝试将int 映射到 无符号 int的情况下。

    class Foo{
      public int baz;
    }
    
    class Bar {
      public uint baz;
    }
    

    在以下映射中属性baz只有在源属性baz大于等于零的情况下才会被映射。

    Mapper.Initialize(cfg => {
      cfg.CreateMap<Foo,Bar>()
        .ForMember(dest => dest.baz, opt => opt.Condition(src => (src.baz >= 0)));
    });
    

    前提条件

    类似的还有一个前提条件。不同之处在于它比映射处理运行的更早,在源值解析之前(想想MapFrom 或者 ResolveUsing)。前提条件被调用之后,再解析映射的源是哪个,然后条件被调用自己完成目标值得分配。

    相关文章

      网友评论

          本文标题:18.AutoMapper 之条件映射(Conditional

          本文链接:https://www.haomeiwen.com/subject/wpehdqtx.html