首先,为我糟糕的英语感到抱歉!我是法国人。
我试图在google上找到,但没有任何结果,所以,这是我的自动配置:
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();
}事实上,群应用程序有应用程序列表,当Mapper.Map试图映射我的应用程序集合时,它失败了.这是错误消息:
缺少类型映射配置或不支持映射。 映射类型:应用程序UGO.Distribution.Shared.Contracts.ApplicationContract -> ApplicationContract UGO.Distribution.Domain.Application -> 目的地路径:清单1 来源值: UGO.Distribution.Domain.Application
如果用这个替换最后一个配置,它就能工作(我用Mapper.Map替换Mapper.DynamicMap):
cfg.CreateMap<GroupeApplication, GroupeApplicationWithDescendantContract>()
.ForMember(d => d.Applications, o => o.MapFrom(s => Mapper.DynamicMap<List<ApplicationContract>>(s.Applications)));我可以满意,但这并不适合我,因为这个方法在Automapper4.0.3中被废弃了!
对这个问题有什么解释或更好的解决办法吗?
发布于 2017-04-07 13:33:54
与其放置ForMember(...),不如尝试:
ForMember<ObjectThatYouWantMap>(...);https://stackoverflow.com/questions/38528495
复制相似问题