Differences between a normal map with a dynamic map - automapper

What is the difference between the codes below:

List<Ogrenci> ogrenci = AutoMapper.Mapper.DynamicMap<IDataReader, List<Ogrenci>>((dt.CreateDataReader())); var ogr = AutoMapper.Mapper.Map<IDataReader, IList<Ogrenci>>(dt.CreateDataReader()); 

When I try to use the code below,

  AutoMapper.Mapper.CreateMap<IDataReader, Ogrenci>().ForMember(dest => dest.Numarasi, opt => opt.MapFrom(src => Convert.ToInt32(src["Numara"]))) .ForMember(dest => dest.Adi, opt => opt.MapFrom(src => Convert.ToString(src["Ad"]))) .ForMember(dest => dest.Soyadi, opt => opt.MapFrom(src => Convert.ToString(src["Soyad"]))); List<Ogrenci> ogrenci = AutoMapper.Mapper.DynamicMap<IDataReader, List<Ogrenci>>((dt.CreateDataReader())); var ogr = AutoMapper.Mapper.Map<IDataReader, IList<Ogrenci>>(dt.CreateDataReader()); 

I can not use the code below:

  List<Ogrenci> ogrenci = AutoMapper.Mapper.DynamicMap<IDataReader, List<Ogrenci>>((dt.CreateDataReader())); 

but I can use the following code:

  var ogr = AutoMapper.Mapper.Map<IDataReader, IList<Ogrenci>>(dt.CreateDataReader()); 

What are your suggestions?

Thanks.

+7
c # automapper
source share
1 answer

AutoMapper uses DynamicMap when you don’t know the type of source at compile time. The reason you cannot use

 List<Ogrenci> ogrenci = AutoMapper.Mapper.DynamicMap<IDataReader, List<Ogrenci>>((dt.CreateDataReader())); 

lies in the fact that DynamicMap does not require specifying the type of source, only the type of destination.

AutoMapper Features: Dynamic Display

+6
source share

All Articles