我创建了这个映射:
Mapper.CreateMap<User, UserModel>()
.ForMember(um => um.UID, mo => mo.MapFrom(s => s.Id));
我即将创建此映射:
Mapper.CreateMap<Blog, BlogModel>()
.ForMember(bm => bm.Author, mc => mc.MapFrom(m => m.Author));
所以Author
User
是Blog
BlogModel
,但Blog
我希望减少信息量。
我的问题是,当User
被映射时,它是否会使用{{1}}映射,或者如何让它使用该映射配置?
答案 0 :(得分:1)
源对象
目标对象
对象映射
答案 1 :(得分:1)
是的,它会的。这是样本:
现在,删除您的映射,您将看到异常,因为AutoMapper不知道如何转换您的实体:
此外,如果要映射部分模型或不同类型的映射,请查看Value Resolver class。您可以使用它,如下所示:
public class YourCustomResolver : ValueResolver<FromModel, ToPartOfModel>
{
protected override ToPartOfModel ResolveCore(FromModel)
{
// Your manual mapping or another call to AutoMapper
}
}
// Configuring mapper
AutoMapper.Mapper.CreateMap<FromModel, ToModel>().
ForMember(o => o.ImageLogoMin, opt => opt.ResolveUsing<YourCustomResolver >().ConstructedBy(() => new YourCustomResolver ()));
希望它有所帮助。