我试图配置从实体框架实体到视图模型对象的简单AutoMapper映射。它主要工作,但在视图模型中我有一个int字段来保持计数。源实体中不存在此字段。
cfg.CreateMap<Feed, FeedVM>()
.ForMember(dest => dest.Count, opt => opt.MapFrom(src => src.Orders.Count()));
当我检查映射的有效性时,我收到以下错误消息:
Feed上的以下属性无法映射:
添加自定义映射表达式,忽略,添加自定义解析程序或修改目标类型Feed。 语境: 从FeedVM类型映射到Feed
如果我正确理解Automapper语法,我将从Feed映射到FeedVM,但错误消息似乎表明我正在从FeedVM映射到Feed。
我应该怎么做才能将值42映射到FeedVM中的Count字段?
答案 0 :(得分:1)
您应该使用ResolveUsing
:
cfg.CreateMap<Feed, FeedVM>()
.ForMember(dest => dest.Count, opt => opt.ResolveUsing(src => src.Orders.Count()));
更新
John在下面的评论中指出映射是正确的,问题在于与Feed
相关的另一个实体的映射。在那个实体中,他正在映射两个方向。