自动映射子项目
本文关键字:子项目 映射 | 更新日期: 2023-09-27 18:16:17
我正在尝试使用Automapper从前端对象层次结构映射到后端对象层次结构。这就需要从源对象中的几个源动态地创建子组件。我在其他地方也这样做过,没有遇到麻烦。但是在这种情况下,新创建的对象也需要映射它自己的属性。
我在下面添加了一个通用版本。
config.CreateMap<BusinessObject, WebObject>()
.ForMember(d => d.Component, opts => opts.ResolveUsing(b =>
{
return new ComponentBusinessObject()
{
Date = b.Property1.Date,
Definition = b.Property2.Definition // This needs converting from (DefinitionWebObject to DefinitionBusinessObject)
};
}));
有人知道在较低级别重新调用映射器的方法吗?(上面例子中的'Definition')
根据GTG的评论构建:
如果在BusinessObject
和WebObject
映射之前将DefinitionWebObject
和DefinitionBusinessObject
映射在一起,则应该能够调用Mapper。映射到父映射中
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)
};
}));