Automapper。 如果源成员为空,则映射

我有两个类,并使用Automapper将其映射到其他类。 例如:

public class Source 
{
    // IdName is a simple class containing two fields: Id (int) and Name (string)
    public IdName Type { get; set; } 

    public int TypeId {get; set; }

    // another members
}

public class Destination
{
    // IdNameDest is a simple class such as IdName
    public IdNameDest Type { get; set; } 

    // another members
}

然后我使用Automapper将Source映射到Destination

cfg.CreateMap<Source, Destination>();

它工作正常,但有时在类Source成员Type变为null 。 在这些情况下,我想从TypeId属性映射类Destination成员Type 。 这正是我想要的:

if Source.Type != null 
then map Destination.Type from it
else map it as 
    Destination.Type = new IdNameDest { Id = Source.Id }

AutoMapper有可能吗?


您可以在声明映射时使用.ForMember()方法。 像这样:

cfg.CreateMap<Source, Destination>()
.ForMember(dest => dest.Type, opt => opt.MapFrom(src => src.Type != null ? src.Type : new IdNameDest { Id = src.Id }));
链接地址: http://www.djcxy.com/p/37359.html

上一篇: Automapper. Map if source member is null

下一篇: AutoMapper map complex object