Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mengabaikan Sifat Tidak Dipetakan dalam AutoMapper?

Bagaimana untuk Mengabaikan Sifat Tidak Dipetakan dalam AutoMapper?

Barbara Streisand
Barbara Streisandasal
2025-01-03 18:39:41445semak imbas

How to Ignore Unmapped Properties in AutoMapper?

Mengabaikan Pemetaan Sifat Tidak Dipetakan dengan Automapper

Apabila memetakan antara dua kelas menggunakan Automapper, adalah mungkin untuk menghadapi senario di mana satu atau lebih sifat berada dalam kelas sumber tidak terdapat dalam kelas destinasi. Ini boleh membawa kepada pengecualian semasa proses pemetaan.

Pertimbangkan contoh berikut:

class OrderModel { public string ProductName; }
class Orders { }

CreateMap<OrderModel, Orders>();

Dalam kes ini, percubaan untuk memetakan OrderModel ke kelas Pesanan akan menghasilkan pengecualian yang menunjukkan bahawa harta ProductName pada OrderModel tidak dipetakan. Untuk menyelesaikan isu ini dan menghalang Automapper daripada cuba memetakan sifat yang tidak dipetakan, anda boleh menggunakan kaedah ForMember dalam kombinasi dengan Abaikan.

CreateMap<OrderModel, Orders>()
    .ForMember(x => x.ProductName, opt => opt.Ignore());

Dengan menentukan Abaikan sebagai pilihan, Automapper akan melangkau pemetaan sifat ProductName . Ini membolehkan proses pemetaan diteruskan tanpa menghadapi sebarang pengecualian.

Dikemas kini: DoNotValidate Daripada Abaikan

Dalam AutoMapper 8.0, pilihan Abaikan telah digantikan dengan DoNotValidate. Oleh itu, coretan kod di atas hendaklah dikemas kini seperti berikut:

CreateMap<OrderModel, Orders>()
    .ForMember(x => x.ProductName, opt => opt.DoNotValidate());

Atas ialah kandungan terperinci Bagaimana untuk Mengabaikan Sifat Tidak Dipetakan dalam AutoMapper?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn