C# AutoMapper - 如果源中不存在,则在 dest 属性 中设置默认值

C# AutoMapper - Set default value in dest property if not exist in source

我有:

Class A
{
    public string FirstName { get; set; }
}

Class B
{
    public string FirstName { get; set; }
    public Guid RequestId { get; set; }
}

我想将 从 A 映射到 B,因为“A”没有 RequestId 我想将其设置为 Guid.NewGuid()

我试过这段代码:

var config = new MapperConfiguration(cfg =>
            {
                cfg.CreateMap<A, B>().ForMember(m => m.RequestId, o => Guid.NewGuid());
            
            });
            _mapper = config.CreateMapper();

但我在 RequestId 中仍然得到 Guid。

更改映射配置:

cfg.CreateMapper<A,B>().ForMember(x => x.RequestId, o => o.NullSubstitute(Guid.NewGuid());

该映射应如下所示:

var config = new MapperConfiguration(cfg =>
{
    cfg.CreateMap<A, B>().ForMember(m => m.RequestId, o => o.MapFrom(s => Guid.NewGuid()));
        
});