我正在使用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 關注
- 2208 瀏覽
添加回答
舉報
0/150
提交
取消