我尝试了以下 map :
CreateMap<ThemeNewModel, CreateThemeOrder.ThemeModel>()
.ForMember(d => d.Subject.Id, o => o.MapFrom(s => s.Subject));
Subject.Id
和 Subject
都是 int
类型。但是,我收到以下错误:我正在使用 AutoMapper 2.0。没有
AfterMap
我不能解决这个问题吗? 最佳答案
ThemeNewModel.Subject
的类型是什么?假设它的 ThemeSubject
,你可能会成功:
CreateMap<ThemeSubject, CreateThemeOrder.ThemeModel>()
.ForMember(d=>d.Id, o => o.MapFrom(s->s.Subject));
CreateMap<ThemeNewModel, CreateThemeOrder.ThemeModel>()
.ForMember(d=>d.Subject, o => o.MapFrom(s => s);
如果上述方法不起作用,您应该遵循异常中的建议,并创建自定义解析器。
无论如何,automapper 旨在从复杂类型扁平化为扁平模型/ View 模型类型,因此您的
ThemeNewModel
太复杂了,也许您需要重新考虑您的设计。关于automapper - 必须解析为顶级成员,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14837338/