自动映射:只有第一个包含作品

时间:2015-09-17 11:58:26

标签: c# automapper

我有一个非常奇怪的问题,我无法解释。请参阅此Map以获取AutomapperProfile:

            CreateMap<BO, AbstractDto>()
            .Include<BO, ConcreteDto1>()
            .Include<BO, ConcreteDto2>()
            .ForMember(d...));

我有相同的Business-Object和一个带有两个具体实现的抽象Dto。 如果我只使用它,AutoMapper只识别第一个Include,但忽略第二个并抛出异常。 我首先验证了这一点,包括ConcreteDto2,它导致这个映射工作,并抛出ConcreteDto1。

我找到的最接近的答案是: AutoMapper -- inheritance mapping not working, same source, multiple destinations但在我的情况下,它肯定只需要第一个包含。

这是与Thread相同的问题,还是有其他问题?如果是的话,是否有一个方便的解决方案,没有代码重复?

提前致谢

的Matthias

1 个答案:

答案 0 :(得分:2)

这是AutoMapper 4.0中的一个错误,PR打开以修复4.1。目前,您需要使用Mapper.Initialize代替Mapper.CreateMap来执行初始配置。