【发布时间】:2011-06-26 15:35:55
【问题描述】:
我正在使用 Automapper,我有以下情况: 类 OrderModel 有一个名为“ProductName”的属性,该属性不在数据库中。 因此,当我尝试使用以下方法进行映射时:
Mapper.CreateMap<OrderModel, Orders>();
它会产生一个异常:
“Project.ViewModels.OrderModel 上的以下 1 个属性未映射:'ProductName'
我在AutoMapper's Wiki for Projections 阅读了相反的情况(额外的属性在目标上,而不是在我的情况下的源中)
如何避免自动映射器对该属性进行映射?
【问题讨论】:
-
Automapper 不能这样工作。它只关心目标对象的属性。 src 可以包含 100 个额外的属性——Automapper 只映射 dest 属性。必须有其他原因导致映射异常。你能发布一些不起作用的代码吗?
-
它会自动执行您的要求。发布一些代码以澄清
-
@Patrick AutoMapper 在分析方法/属性名称方面做了一些技巧。即使目标上没有完全匹配,源上的某个属性也可能被无意映射。这就是为什么有一个 ForSourceMember(...Ignore()) 来防止这种情况发生的原因。
标签: c# model viewmodel automapper object-object-mapping