【发布时间】:2011-05-21 00:52:02
【问题描述】:
有没有办法做到这一点?我们有一个从三种不同类型映射的 SummaryDto,当我们为每种类型创建映射时,未映射的道具会引发错误。摘要 dto 上有大约 35 个属性。对每一个都使用 Ignore() 选项太麻烦了。是否存在全局忽略?类似的东西
CreateMap<Source,Target>()
.IgnoreAllUnmapped();
【问题讨论】:
-
这似乎是一件好事,但是,即使您的 DTO 上有 35 个属性,如果您使用的是
AutoMapper.Mapper.AssertConfigurationIsValid();,那么您将来可能会忘记映射属性这可能会导致问题。我会谨慎使用。 -
从 5.0+ 版开始,您可以使用:
.ForAllOtherMembers(m => m.Ignore())。见例子here -
在这种情况下,我只需要编写一个自定义映射器。 Automapper 仅在您有许多相同名称和类型的列(或能够在类型之间一致映射类型)时才有用。如果您只对众多列中的几列感兴趣,那么 AutoMapper 不是最佳解决方案。
标签: c# automapper