首頁 >後端開發 >C++ >如何忽略 AutoMapper 中未對應的屬性?

如何忽略 AutoMapper 中未對應的屬性?

Barbara Streisand
Barbara Streisand原創
2025-01-03 18:39:41438瀏覽

How to Ignore Unmapped Properties in AutoMapper?

使用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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn