gpt4 book ai didi

automapper - 必须解析为顶级成员

转载 作者:行者123 更新时间:2023-12-02 00:11:48 25 4
gpt4 key购买 nike

我尝试了以下 map :

CreateMap<ThemeNewModel, CreateThemeOrder.ThemeModel>()
.ForMember(d => d.Subject.Id, o => o.MapFrom(s => s.Subject));

Subject.IdSubject 都是int 类型。但是,我收到以下错误:

Expression 'd => Convert(d.Subject.Id)' must resolve to top-level member and not any child object's properties. Use a custom resolver on the child type or the AfterMap option instead.Parameter name: lambdaExpression

我正在使用 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com