忽略使用Automapper映射一个属性

我正在使用Automapper,并且有以下情况:类OrderModel具有一个名为'ProductName'的属性,该属性不在数据库中。因此,当我尝试使用以下方法进行映射时:


Mapper.CreateMap<OrderModel, Orders>(); 

它产生一个异常:


“未映射Project.ViewModels.OrderModel上的以下1个属性:'ProductName'


我已经在AutoMapper的Wiki for Projections中阅读了相反的情况(额外的属性在目标上,而不是在源中,这实际上是我的情况)


如何避免自动映射器对此属性进行映射?


函数式编程
浏览 2173回答 3
3回答

慕侠2389804

我也许是个完美主义者。我不太喜欢ForMember(...,x => x.Ignore())语法。这是小事,但对我来说很重要。我写了这个扩展方法,使它更好一点:public static IMappingExpression<TSource, TDestination> Ignore<TSource, TDestination>(&nbsp; &nbsp; this IMappingExpression<TSource, TDestination> map,&nbsp; &nbsp; Expression<Func<TDestination, object>> selector){&nbsp; &nbsp; map.ForMember(selector, config => config.Ignore());&nbsp; &nbsp; return map;}可以这样使用:Mapper.CreateMap<JsonRecord, DatabaseRecord>()&nbsp; &nbsp; &nbsp; &nbsp; .Ignore(record => record.Field)&nbsp; &nbsp; &nbsp; &nbsp; .Ignore(record => record.AnotherField)&nbsp; &nbsp; &nbsp; &nbsp; .Ignore(record => record.Etc);您也可以将其重写为与配合使用params,但我不喜欢带有大量lambda的方法的外观。
打开App,查看更多内容
随时随地看视频慕课网APP