Automapper - 如果src不为null,则创建对象

时间:2013-03-14 19:13:41

标签: asp.net-mvc automapper

我可以做这样的事情:

.ForMember(dest => dest.Ad, opt => opt.MapFrom(src => src.Ask_Id == null ? null : new Ask { Id = src.Ask_Id }))

我收到了不受支持的映射错误。

感谢。

1 个答案:

答案 0 :(得分:3)

我不确定你的类对象是什么样的,预先假设你有类似下面的类,

class Ask
{
    public int Id { get; set; }
}

class DestinationDto
{
    public Ask Ad { get; set; }
}

class SourceDto
{
    public int? Ask_Id { get; set; }
}

如果是,请使用下面的mapper。

Mapper.CreateMap<SourceDto, DestinationDto>()
 .ForMember(dest => dest.Ad, opt => opt.MapFrom(src => src.Ask_Id == null ? null : new Ask { Id = src.Ask_Id.Value }));

var source = new SourceDto { Ask_Id = 1}; // try with null
var destination = Mapper.Map<SourceDto, DestinationDto>(source);