【发布时间】:2016-06-15 13:40:54
【问题描述】:
正如标题所示,我正在尝试将 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.IList1[[MemberChangesDto,模型, 版本=1.0.0.0,文化=中性, PublicKeyToken=null]] 目的地路径: 列表`1 源值:System.Data.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 导致了这里的问题。
提前致谢。
【问题讨论】:
标签: c# mapping automapper datareader idatareader