我尝试了以下 map :

CreateMap<ThemeNewModel, CreateThemeOrder.ThemeModel>()
    .ForMember(d => d.Subject.Id, o => o.MapFrom(s => s.Subject));
Subject.IdSubject 都是 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/

10-13 08:59