Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mengabaikan Sifat Tidak Dipetakan dalam 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!