有没有办法配置AutoMapper使其自动将实体映射到自身......
我想基本避免这种情况:
Mapper.CreateMap<Company, Company>();
Mapper.CreateMap<Car, Car>();
....
答案 0 :(得分:1)
您可以使用DynamicMap,而无需配置CreateMap:
var companyMapped = Mapper.DynamicMap<Company>(company);
DynamicMap调用为源类型创建配置 对象传入指定的目标类型。如果是两种类型 已经映射,AutoMapper跳过这一步(我可以调用 这个例子的DynamicMap多次)。为了安全起见,AutoMapper 将首次验证动态地图的配置 执行,因为它倾向于提供比映射更好的消息 异常。
使用DynamicMap,您无需配置映射, 但在这一点上,你也失去了单一的好处 AssertConfigurationIsValid调用。在DynamicMap方面,我可以 相当低一点,不做任何映射验证,但我会 而不是因为它的预期用途是一个非常具体的场景。理想 案例是预先配置您的映射,更好 可测试性。