首先,抱歉我的英语不好!我是法国人。
我试图在谷歌上找到但没有任何结果,这是我的自动播放器配置:
public void CreateMap(IMapperConfiguration cfg)
{
cfg.CreateMap<GroupeApplication, GroupeApplicationContract>();
cfg.CreateMap<Application, ApplicationContract>()
.ForMember(d => d.GroupeApplicationId, o => o.MapFrom(s => s.GroupeApplication != null ? s.GroupeApplication.Id : Guid.Empty));
cfg.CreateMap<Application, ApplicationWithAscendantContract>()
.ForMember(d => d.GroupeApplication, o => o.MapFrom(s => Mapper.Map<GroupeApplicationContract>(s.GroupeApplication)));
cfg.CreateMap<GroupeApplication, GroupeApplicationWithDescendantContract>()
.ForMember(d => d.Applications, o => o.MapFrom(s => Mapper.Map<List<ApplicationContract>>(s.Applications)));
Mapper.AssertConfigurationIsValid();
}
事实上,groupeapplication有应用程序列表,Mapper.Map在尝试映射我的应用程序集合时失败了...这是错误消息:
缺少类型映射配置或不支持的映射。
映射类型: 申请 - &gt; ApplicationContract UGO.Distribution.Domain.Application - &gt; UGO.Distribution.Shared.Contracts.ApplicationContract
目的地路径: List`1 [0]
来源价值: UGO.Distribution.Domain.Application
如果我用这个替换最后一个配置它可以工作(我用Mapper.DynamicMap替换Mapper.Map):
cfg.CreateMap<GroupeApplication, GroupeApplicationWithDescendantContract>()
.ForMember(d => d.Applications, o => o.MapFrom(s => Mapper.DynamicMap<List<ApplicationContract>>(s.Applications)));
我可以满意,但这不适合我,因为在automapper 4.0.3中不推荐使用这种方法!!
这个问题有没有解释或更好的解决方案?
答案 0 :(得分:0)
不要放ForMember(...)
,而是尝试:
ForMember<ObjectThatYouWantMap>(...);