使用AutoMapper合并两个对象以产生第三个对象

我知道它是AutoMapper而不是AutoMerge(r),但是...

我已经开始使用AutoMapper,并且需要映射A - > B,并从C中添加一些属性,以便B成为A + C的一种平面组合。

这可能在AutoMapper中,我应该只使用AutoMapper来完成繁重的工作,然后手动映射额外的属性?


你可以用ValueInjecter来做到这一点

 a.InjectFrom(b)
  .InjectFrom(c)
  .InjectFrom<SomeOtherMappingAlgorithmDefinedByYou>(dOrBOrWhateverObject);

这不行吗?

var mappedB = _mapper.Map<A,B>(aInstance);
_mapper.Map(instanceC,mappedB);

从我记得的AutoMapper中,你必须将你的映射定义为一个输出的一个输入(也许这已经改变 - 因为一个月没有使用它)。

如果是这种情况,也许你的映射应该是KeyValuePair<A,C> (或者某种组成A&C的对象)=> B

这样你可以有一个定义的输入参数映射到你的输出对象

链接地址: http://www.djcxy.com/p/6373.html

上一篇: Merge two objects to produce third using AutoMapper

下一篇: Automapper: Update property values without creating a new object