使用Automapper 忽略未映射屬性的映射
使用Automapper 在兩個類別之間進行映射時,可能會遇到以下情況:其中一個或多個屬性來源類別不存在於目標類別中。這可能會在映射過程中導致異常。
考慮以下範例:
class OrderModel { public string ProductName; } class Orders { } CreateMap<OrderModel, Orders>();
在這種情況下,嘗試將 OrderModel 對應到 Orders 類別會導致異常,表示OrderModel 上的 ProductName 屬性未對應。若要解決此問題並防止 Automapper 嘗試對應未對應的屬性,您可以將 ForMember 方法與 Ignore 結合使用。
CreateMap<OrderModel, Orders>() .ForMember(x => x.ProductName, opt => opt.Ignore());
透過指定 Ignore 作為選項,Automapper 將跳過 ProductName 屬性的對應。這允許映射過程繼續進行而不會遇到任何異常。
更新:DoNotValidate 而不是 Ignore
在 AutoMapper 8.0 中,Ignore 選項已替換為 DoNotValidate。因此,上面的程式碼片段應更新為:
CreateMap<OrderModel, Orders>() .ForMember(x => x.ProductName, opt => opt.DoNotValidate());
以上是如何忽略 AutoMapper 中未對應的屬性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!