正如标题所示,我正在尝试将 DataReader 对象映射到对象列表,这是我正在使用的代码,我已经尝试使用 AutoMapper 4.2.1 和 3.3.1
Mapper.Initialize(cfg =>
{
cfg.CreateMap<IDataReader, MemberChangesDto>()
.ForMember(dest => dest.MemberNo, opt => opt.MapFrom(src => (string)src["Member_No"]))
.ForMember(dest => dest.OrganisationName, opt => opt.MapFrom(src => (string)src["Member_Name"]))
.ForMember(dest => dest.MemberJoinDate, opt => opt.MapFrom(src => (string)src["Membership_StartDate"]))
.ForMember(dest => dest.ResignationDate, opt => opt.MapFrom(src => (string)src["Membership_Resigned_Date"]))
.ForMember(dest => dest.MemberStatusId, opt => opt.MapFrom(src => (string)src["Membership_Status_Code"]));
}
);
初始化自动映射器后,我使用
Mapper.AssertConfigurationIsValid();
这不会返回任何错误,然后我调用映射
IDataReader dataTableReader = memberChangesDS.Tables[2].CreateDataReader();
IList<MemberChangesDto> members = Mapper.Map<IList<MemberChangesDto>>(dataTableReader);
但是,这会返回错误
{“缺少类型映射配置或不支持的映射。映射类型:IDataReader -> IList
1 System.Data.IDataReader -> System.Collections.Generic.IList
1[[MemberChangesDto, Models, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]] 目标路径:IList`1 源值:System。数据.DataTableReader"}
我试图映射到的对象看起来像这样。
public class MemberChangesDto
{
public string MemberNo { get; set; }
public string OrganisationName { get; set; }
public string MemberJoinDate { get; set; }
public string ResignationDate { get; set; }
public string MemberStatusId { get; set; }
}
谁能指出我正确的方向,我已经从一个对象到另一个对象使用 AutoMapper 没有问题,但是我认为 IDataReader 导致了这里的问题。
提前致谢。