objek pemetaan automapper
Aug 29 2020
Persyaratan tambahan ini berdasarkan pertanyaan ini salah satu sumber untuk beberapa tujuan
class Dest1
{
string prop1;
string prop2;
string prop3;
pubic List<Dest3> Dests3 {get;set;}
}
class Dest3
{
string prop7;
string prop8;
}
class Source2
{
string prop7;
string prop8;
}
- Saya perlu memetakan Source2 ke Dest1 di mapper otomatis (Dest3 adalah daftar yang juga perlu dipetakan)
Kelas pemetaan saya: (tidak berfungsi)
CreateMap<Source2, Dest3>();
CreateMap<Source2, Dest1>()
.ForMember(d => d.Dests3 , opt => opt.MapFrom(s => s));
Jawaban
2 reynoldsbj Aug 30 2020 at 04:30
Jadi, dengan asumsi bahwa ketika pemetaan ini terjadi, Dests3 harus berupa daftar item tunggal, konfigurasi untuk ini akan terlihat seperti ini:
var configuration = new MapperConfiguration(cfg =>
// Mapping Config
cfg.CreateMap<Source2, Dest1>()
.ForMember(dest => dest.prop1, opt => opt.Ignore())
.ForMember(dest => dest.prop2, opt => opt.Ignore())
.ForMember(dest => dest.prop3, opt => opt.Ignore())
.ForMember(dest => dest.Dests3, opt => opt.MapFrom(src =>
new List<Dest3> {
new Dest3 {
prop7 = src.prop7,
prop8 = src.prop8
}
}));
// Check AutoMapper configuration
configuration.AssertConfigurationIsValid();
Kemudian, Anda dapat menggunakan mapper untuk menangani pemetaan di mana pun Anda membutuhkannya, seperti:
public class Foo {
private IMapper _mapper;
public Foo(IMapper mapper) {
_mapper = mapper;
}
// Map Source2 -> Dest1
public Dest1 Bar(Source2 source) {
return _mapper.Map<Dest1>(source);
}
}
Selalu Menjadi Ancaman: Mengapa Orang Berkulit Coklat dan Hitam Tidak Bisa Nyaman di Amerika Serikat
Jana Duggar: Semua yang Dia Katakan Tentang Cinta dan Jendela 5 Tahunnya untuk Menemukan 'Yang Satu'