【问题标题】:Automapper.mapper.map doesn't work but mapper.dynamicmap workAutomapper.mapper.map 不起作用,但 mapper.dynamicmap 起作用
【发布时间】:2016-07-22 14:05:21
【问题描述】:

首先,对不起我的英语不好!我是法国人。

我试图在谷歌上找到,但没有任何结果,这是我的自动映射器配置:

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 失败......这是错误消息:

缺少类型映射配置或不支持的映射。

映射类型: 应用程序 -> 应用程序合同 UGO.Distribution.Domain.Application -> UGO.Distribution.Shared.Contracts.ApplicationContract

目标路径: 列表`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 中被弃用了!!

这个问题有什么解释或者更好的解决方案吗?

【问题讨论】:

  • 你确定不是Group 而不是Groupe
  • @NickBull 他在问题“我是法国人”的开头说 :) :)
  • @HakamFostok 不不,我不会敲那个!我的意思是这个类实际上命名为Group 而不是Groupe,导致类型错误。
  • 什么版本的 AutoMapper?
  • 它是 GroupeApplication 而不是 Group... 就像 Hakam Fostok 说的,我是法国人 ;) 我使用 automapper 4.2.1.0

标签: c# automapper


【解决方案1】:

不要输入ForMember(...),试试:

ForMember<ObjectThatYouWantMap>(...);

【讨论】:

    猜你喜欢
    • 2019-06-15
    • 1970-01-01
    • 2015-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多