【发布时间】:2016-08-25 16:46:09
【问题描述】:
是否可以在地图创建过程中告诉 AutoMapper 映射到嵌套属性的现有实例?
假设我有一堂课:
public class SomeClass
{
public int Id {get; set;}
public Complex Settings {get; set;}
}
public class Complex
{
public int Id { get; set;}
public string SomeText { get; set;}
}
我想创建从 SomeClass 到 SomeClass 的映射,并使用它将属性映射到现有实例。
Mapper.CreateMap<SomeClass, SomeClass>()
.ForMember(src => src.Settings, opts => opts.MapFrom(src => Mapper.Map<Complex, Complex>(src));
Mapper.CreateMap<Complex, Complex>();
Mapper.Map<SomeClass, SomeClass>(a, b);
其中 a 和 b 是 SomeClass 的实例。问题是该解决方案将属性映射到现有实例,但创建了 Complex 的新实例,而不是将 a.Complex 映射到现有 b.Complex。
是否可以配置 AutoMapper 以获得所需的行为?
(它给我带来了很多关于实体框架的问题)。
【问题讨论】:
标签: c# .net automapper