当3.X版本上的地图IDataReader正常时,AutoMapper 5.X抛出异常

时间:2016-11-02 09:41:48

标签: c# automapper

{
    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 - &gt;列表1 System.Data.IDataReader -> System.Collections.Generic.List 1 [...]

配置:

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

1 个答案:

答案 0 :(得分:0)

5.0版目前不支持IDataReader。我把它拿出来是因为我没有写它也不使用它。它位于一个单独的存储库github.com/automapper/automapper.data中,等待实际 使用它来移植它的人。

也许你想投入?