首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Automapper.mapper.map不工作,但mapper.dynamicmap工作

Automapper.mapper.map不工作,但mapper.dynamicmap工作
EN

Stack Overflow用户
提问于 2016-07-22 14:05:21
回答 1查看 651关注 0票数 0

首先,为我糟糕的英语感到抱歉!我是法国人。

我试图在google上找到,但没有任何结果,所以,这是我的自动配置:

代码语言:javascript
复制
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):

代码语言:javascript
复制
cfg.CreateMap<GroupeApplication, GroupeApplicationWithDescendantContract>()
            .ForMember(d => d.Applications, o => o.MapFrom(s => Mapper.DynamicMap<List<ApplicationContract>>(s.Applications)));

我可以满意,但这并不适合我,因为这个方法在Automapper4.0.3中被废弃了!

对这个问题有什么解释或更好的解决办法吗?

EN

回答 1

Stack Overflow用户

发布于 2017-04-07 13:33:54

与其放置ForMember(...),不如尝试:

代码语言:javascript
复制
ForMember<ObjectThatYouWantMap>(...);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38528495

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档