AutoMapper-如何将扁平对象映射到复杂对象?
创始人
2024-09-23 10:00:53
0

假设我们有一个扁平的数据模型,例如:

public class FlatFoo
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string Bar_Name { get; set; }
    public int Bar_Number { get; set; }
}

我们希望将它映射到一个包含嵌套对象的复杂模型:

public class ComplexFoo
{
    public int Id { get; set; }
    public string Name { get; set; }
    public Bar Bar { get; set; }
}

public class Bar
{
    public string Name { get; set; }
    public int Number { get; set; }
}

使用AutoMapper,我们可以使用ReverseMap()来自动将扁平对象映射到复杂对象:

var config = new MapperConfiguration(cfg =>
{
    cfg.CreateMap()
        .ForMember(dest => dest.Bar, opt => opt.MapFrom(src => new Bar
        {
            Name = src.Bar_Name,
            Number = src.Bar_Number,
        }));
    cfg.CreateMap().ReverseMap();
});

var mapper = config.CreateMapper();
var flatFoo = new FlatFoo
{
    Id = 1,
    Name = "FlatFoo",
    Bar_Name = "BarName",
    Bar_Number = 42,
};

var complexFoo = mapper.Map(flatFoo);

在上面的代码中,我们将FlatFoo映射到ComplexFoo,同时使用CreateMap()定义了一个反向映射。使用ReverseMap(),我们可以在源类和目标类之间创建一个双向映射,使得我们可以轻松地在它们之间进行相互转换。我们运用ForMember()配置了嵌套对象Bar的映射关系。

可以看到,我们通过AutoMapper成功地将扁平的FlatFoo对象映射到了复杂的ComplexFoo对象中,而

相关内容

热门资讯

七分钟实锤!德州ai机器人(n... 七分钟实锤!德州ai机器人(nzt德州)都是是有挂(详细辅助科技教程)德州ai机器人软件透明挂微扑克...
9分钟实锤!德扑之星猫腻(we... 9分钟实锤!德扑之星猫腻(wepower德州)确实存在有挂(详细辅助可靠教程)1、起透看视 德扑之星...
第3分钟实锤!智星德州菠萝(德... 第3分钟实锤!智星德州菠萝(德州扑克)都是有挂(详细辅助细节揭秘)智星德州菠萝软件透明挂微扑克wpk...
6分钟实锤!德州ai人工智能(... 6分钟实锤!德州ai人工智能(德州wepower)原来真的有挂(详细辅助专业教程)1、德州ai人工智...
九分钟实锤!德州ai辅助软件(... 九分钟实锤!德州ai辅助软件(wepower德州)确实有挂(详细辅助微扑克教程)1、上手简单,内置详...
八分钟实锤!德州AI智能辅助机... 八分钟实锤!德州AI智能辅助机器人(来玩德州app)确实是有挂(详细辅助安装教程)1、八分钟实锤!德...
一分钟实锤!德州之星插件(德州... 一分钟实锤!德州之星插件(德州扑克)本来有挂(详细辅助教你攻略);1、德州之星插件透视辅助简单,德州...
第8分钟实锤!德扑ai智能(手... 第8分钟实锤!德扑ai智能(手机德州)其实存在有挂(详细辅助必赢教程)1、打开软件启动之后找到中间准...
9分钟实锤!德州之星有外挂(德... 9分钟实锤!德州之星有外挂(德扑)真是真的是有挂(详细辅助攻略教程)1、任何德州之星有外挂ai辅助神...
第6分钟实锤!智星德州菠萝(来... 第6分钟实锤!智星德州菠萝(来玩德州app)果然是真的有挂(详细辅助细节揭秘);1、任何智星德州菠萝...