2016-11-02 2 views
0
{ 
    using (MySqlDataReader reader = ExecuteReader(connectionString, commandText, parms)) 
    { 
     if(reader.HasRows) 
     { 
      var list = AutoMapper.Mapper.Map<IDataReader, IList<T>>(reader); 
      return list.ToList(); 
     } 

     return null; 
    } 
} 

Dieser Code funktioniert auf AutoMapper 3.3.1, aber wenn ich auf die neueste 5.1.1 Version aktualisieren, ist es die Ausnahme werfen:AutoMapper 5.x throw Ausnahme, wenn Karte IDataReader während auf 3.X-Version ist OK

Fehlerzuordnungstypen. Mapping-Typen: IDataReader -> Liste 1 System.Data.IDataReader -> System.Collections.Generic.List 1 [....]

Konfiguration:

public class AutoMapperConfig 
    { 
     public static void Configure() 
     { 
      Mapper.Initialize(cfg => 
      { 
       //MapperRegistry.Mappers.Add(new DataReaderMapper { YieldReturnEnabled = true }); 4.x.x 
       //cfg.CreateMissingTypeMaps = true; 
       cfg.AddProfile<MapperProfile>(); 
      }); 
     } 
    } 

    public class MapperProfile : Profile 
    { 
     protected override void Configure() 
     { 
      CreateMap<System.Data.IDataReader, TestModel>(); 
     } 
    } 
+0

Sie haben nicht viele Informationen aufgenommen, z. B. wie Sie AutoMapper konfigurieren und initialisieren, noch die vollständige Fehlermeldung. Es ist ziemlich schwer zu erraten, was falsch ist! – Richard

Antwort

0

IDataReader ist heute nicht in 5.0 unterstützt. Ich nahm es heraus, weil ich es nicht geschrieben habe, oder ich benutze es nicht. Es befindet sich in einem separaten Repository, github.com/automapper/automapper.data, das auf jemanden wartet, der tatsächlich verwendet, um es zu portieren.

Vielleicht möchten Sie einsteigen?

Verwandte Themen