使用 Automapper 时,可能需要从源对象和目标对象之间的映射中排除某些属性。当目标对象包含不适合从源映射的只读或计算属性时,可能会发生这种情况。
其中一种情况是源对象(例如 OrderModel)具有属性 (ProductName)目标对象中不存在的内容(例如订单)。尝试使用以下命令执行映射:
Mapper.CreateMap<OrderModel, Orders>();
将导致异常,指示 ProductName 属性未映射。
要防止 Automapper 尝试映射 ProductName 属性,请使用 Ignore( ) 方法:
CreateMap<OrderModel, Orders>().ForMember(x => x.ProductName, opt => opt.Ignore());
或者,在 AutoMapper 8.0 之后的版本中, Ignore() 方法已替换为 DoNotValidate():
CreateMap<OrderModel, Orders>().ForMember(x => x.ProductName, opt => opt.DoNotValidate());
通过指定 Ignore() 或 DoNotValidate() 选项,Automapper 将从映射过程中排除 ProductName 属性,解决异常并允许映射成功进行。
以上是如何在 AutoMapper 映射期间忽略属性?的详细内容。更多信息请关注PHP中文网其他相关文章!