使用计算值创建AutoMapper映射?

时间:2016-09-07 17:26:11

标签: c# automapper

我试图配置从实体框架实体到视图模型对象的简单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字段?

1 个答案:

答案 0 :(得分:1)

您应该使用ResolveUsing

cfg.CreateMap<Feed, FeedVM>()
   .ForMember(dest => dest.Count, opt => opt.ResolveUsing(src => src.Orders.Count()));
更新

John在下面的评论中指出映射是正确的,问题在于与Feed相关的另一个实体的映射。在那个实体中,他正在映射两个方向。