Automapper:只有第一个包含作品
Automapper: Only first Include works
我有一个非常奇怪的问题,我无法解释。请参阅此地图以获取 AutomapperProfile:
CreateMap<BO, AbstractDto>()
.Include<BO, ConcreteDto1>()
.Include<BO, ConcreteDto2>()
.ForMember(d...));
我有相同的业务对象和一个具有两个具体实现的抽象 Dto。
如果我只使用它,AutoMapper 只识别第一个 Include,而忽略第二个并抛出异常。
我通过首先包含 ConcreteDto2 来验证这一点,这导致此映射起作用,并导致 ConcreteDto1 抛出。
我找到的最接近的答案是:
AutoMapper -- inheritance mapping not working, same source, multiple destinations 但在我的例子中它绝对只需要第一个包含。
这个问题和线程中的问题一样吗,还是有其他问题?如果是这样,是否有没有代码重复的方便的解决方案?
提前致谢
马蒂亚斯
这是 AutoMapper 4.0 中的错误,已打开 PR 以针对 4.1 修复它。现在,您需要使用 Mapper.Initialize
而不是 Mapper.CreateMap
来执行初始配置。
我有一个非常奇怪的问题,我无法解释。请参阅此地图以获取 AutomapperProfile:
CreateMap<BO, AbstractDto>()
.Include<BO, ConcreteDto1>()
.Include<BO, ConcreteDto2>()
.ForMember(d...));
我有相同的业务对象和一个具有两个具体实现的抽象 Dto。 如果我只使用它,AutoMapper 只识别第一个 Include,而忽略第二个并抛出异常。 我通过首先包含 ConcreteDto2 来验证这一点,这导致此映射起作用,并导致 ConcreteDto1 抛出。
我找到的最接近的答案是: AutoMapper -- inheritance mapping not working, same source, multiple destinations 但在我的例子中它绝对只需要第一个包含。
这个问题和线程中的问题一样吗,还是有其他问题?如果是这样,是否有没有代码重复的方便的解决方案?
提前致谢
马蒂亚斯
这是 AutoMapper 4.0 中的错误,已打开 PR 以针对 4.1 修复它。现在,您需要使用 Mapper.Initialize
而不是 Mapper.CreateMap
来执行初始配置。