2013-08-28 4 views
7

Was sind die Unterschiede zwischen den folgenden Codes;Die Unterschiede zwischen einer normalen Karte mit dynamischer Karte - automapper

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

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

Wenn ich versuche, den folgenden Code zu verwenden;

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()); 

Ich kann den folgenden Code nicht verwenden;

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

aber ich kann den folgenden Code verwenden;

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

Was sind Ihre Vorschläge?

Vielen Dank.

Antwort

6

DynamicMap in AutoMapper wird verwendet, wenn Sie den Quellentyp zum Zeitpunkt der Kompilierung nicht kennen. Der Grund, warum Sie nicht

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

verwenden können, ist, weil DynamicMap Sie braucht nicht den Quelltyp angeben, nur den Zieltyp.

AutoMapper features: Dynamic Mapping

Verwandte Themen