我正在使用Automapper,并且有以下情况:类OrderModel具有一个名为'ProductName'的属性,该属性不在数据库中。因此,当我尝试使用以下方法进行映射时:Mapper.CreateMap<OrderModel, Orders>(); 它产生一个异常:“未映射Project.ViewModels.OrderModel上的以下1个属性:'ProductName'我已经在AutoMapper的Wiki for Projections中阅读了相反的情况(额外的属性在目标上,而不是在源中,这实际上是我的情况)如何避免自动映射器对此属性进行映射?
3 回答
慕侠2389804
TA贡献1719条经验 获得超6个赞
我也许是个完美主义者。我不太喜欢ForMember(...,x => x.Ignore())语法。这是小事,但对我来说很重要。我写了这个扩展方法,使它更好一点:
public static IMappingExpression<TSource, TDestination> Ignore<TSource, TDestination>(
this IMappingExpression<TSource, TDestination> map,
Expression<Func<TDestination, object>> selector)
{
map.ForMember(selector, config => config.Ignore());
return map;
}
可以这样使用:
Mapper.CreateMap<JsonRecord, DatabaseRecord>()
.Ignore(record => record.Field)
.Ignore(record => record.AnotherField)
.Ignore(record => record.Etc);
您也可以将其重写为与配合使用params,但我不喜欢带有大量lambda的方法的外观。
- 3 回答
- 0 关注
- 2172 浏览
添加回答
举报
0/150
提交
取消