AutoMapper 5.当map IDataReader在3时抛出异常.X版本可以


{
    using (MySqlDataReader reader = ExecuteReader(connectionString, commandText, parms))
    {
        if(reader.HasRows)
        {
            var list  = AutoMapper.Mapper.Map<IDataReader, IList<T>>(reader);
            return list.ToList();
        }
        return null;
    }
}

这段代码在AutoMapper 3.3.1上工作得很好,但是当我升级到最新的5.1.1版本时,它抛出了异常:

错误映射类型。映射类型:IDataReader -> List 1 System.Data.IDataReader -> System.Collections.Generic.List [....]

配置:

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

IDataReader在今天的5.0中不受支持。我把它拿出来是因为我既没写也没用过。它在一个单独的存储库github.com/automapper/automapper.data中,等待真正使用的人来移植它。

也许你愿意帮忙?

最新更新