【问题标题】:C# AutoMapper - Set default value in dest property if not exist in sourceC# AutoMapper - 如果源中不存在,则在 dest 属性中设置默认值
【发布时间】:2020-11-18 20:00:55
【问题描述】:

我有:

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 中得到 empty Guid。

【问题讨论】:

    标签: c# automapper guid


    【解决方案1】:

    该映射应如下所示:

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

    【讨论】:

      【解决方案2】:

      更改映射配置:

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

      【讨论】:

        猜你喜欢
        • 2016-06-10
        • 2017-06-24
        • 1970-01-01
        • 2015-07-15
        • 2013-09-10
        • 1970-01-01
        • 2016-02-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多