自动映射子项

时间:2015-10-07 04:51:34

标签: c# automapper

我正在尝试使用Automapper从前端对象层次结构映射到后端对象层次结构。这需要从源对象中的多个源动态创建子组件。我已经在其他地方做到了这一点,没有遇到任何麻烦。但在这种情况下,新创建的对象也需要自己的属性进行映射。

我在下面添加了我正在谈论的通用版本。

color: red;

有没有人知道在较低级别重新调用mapper的方法? (上例中的'定义'。)

1 个答案:

答案 0 :(得分:1)

建立GTG的评论:

如果您在DefinitionWebObjectDefinitionBusinessObject映射之前将BusinessObjectWebObject映射到一起,则应该可以在父地图中调用Mapper.Map。

config.CreateMap<DefinitionWebObject, DefinitionBusinessObject>();  // Create sub-mapping first.

config.CreateMap<BusinessObject, WebObject>()
    .ForMember(d => d.Component, opts => opts.ResolveUsing(b =>
    {
        return new ComponentBusinessObject()
        {
            Date = b.Property1.Date,
            Definition = Mapper.Map<DefinitionBusinessObject>(b.Property2.Definition)
        };
    }));