gpt4 book ai didi

c# - Automapper 从一个对象映射到嵌套对象

转载 作者:太空狗 更新时间:2023-10-29 22:27:50 26 4
gpt4 key购买 nike

使用 Automapper 2.0 映射内部对象的最佳方式是什么

  1. 使用此 question 中的解决方案(自动映射器 1.0)

  2. 创建自定义值解析器

  3. ?

    public class DTOObject
    {
    // MainObject
    public int Id { get; set; }
    public string Name { get; set; }

    // SubObject (TopObject)
    public string TopText { get; set; }
    public string TopFont { get; set; }

    // SubObject (BottomObject)
    public string BottomText { get; set; }
    public string BottomFont { get; set; }
    }

    public class MainObject
    {
    public int Id { get; set; }
    public string Name { get; set; }

    public SubObject TopObject { get; set; }
    public SubObject BottomObject { get; set; }
    }

    public class SubObject
    {
    public string SubPropText { get; set; }
    public string SubPropFont { get; set; }
    }

自定义值解析器

    public class CustomResolver : ValueResolver<DTOObject, SubObject>
{
protected override SubObject ResolveCore(DTOObject source)
{
return Mapper.Map<DTOObject, SubObject>(source);
}
}

最佳答案

对我来说,可以只使用 MapFrom(不使用 ResolveUsing 让您有机会使用带有 IQueryable 扩展的映射)。因此,您将在 Automapper 配置中获得以下内容:

Mapper.CreateMap<DTOObject, SubObject>()
.ForMember(dest => dest.SubPropText, opt => opt.MapFrom(x => x.BottomText))
.ForMember(dest => dest.SubPropFont, opt => opt.MapFrom(x => x.BottomFont));

Mapper.CreateMap<DTOObject, MainObject>()
.ForMember(dest => dest.SubPart, opt => opt.MapFrom(x => x));

关于c# - Automapper 从一个对象映射到嵌套对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9110815/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com