如何编写ForAllMaps函数

时间:2018-04-05 12:33:58

标签: c# .net-core automapper

我想编写代码来检查,如果来源有id而目的地有SourceNameId,则要比地图检查,否则请忽略。例如Company.Id -> CompanyDto.CompanyId

ForAllMaps((typeMap, mappingExpression) => mappingExpression.ForMember($"{typeMap.SourceType.Name}Id", o => o.MapFrom("Id")));

如果找不到mappingExpression.ForMember,则SourceNameId会抛出异常。 它不应该忽略所有其他成员,自动映射或稍后手动映射

1 个答案:

答案 0 :(得分:2)

在尝试映射之前,您可以检查属性是否存在于目标类型中:

get '/my_products', to: 'products#my_products'