Automapper. Map if source member is null

I have two classes and map one to other with Automapper. For instance:

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
}

Then I use Automapper to map Source to Destination :

cfg.CreateMap<Source, Destination>();

It works properly but sometimes member Type in class Source becomes null . In these cases I would like to map member Type in class Destination from TypeId property. That's what I want in a nutshel:

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

Is it possible with AutoMapper?


You can use the .ForMember() method while declaring the mapping. Like so :

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/37360.html

上一篇: Automapper:将TypeConverter定位到特定对象

下一篇: Automapper。 如果源成员为空,则映射