Automapper 数据表到列表

Posted

技术标签:

【中文标题】Automapper 数据表到列表【英文标题】:Automapper Datatable to List 【发布时间】:2016-08-14 18:49:38 【问题描述】:

我想使用自动映射器将我的数据表映射到列表。我尝试使用下面的代码,但它不起作用,我遇到了错误。

var data = GetDataTableResult();
var result = Mapper.Map<IDataReader, IList<RollCall>(data.CreateDataReader()); 

public class RollCall

    public long Id  get; set; 
    public string CreationUserId  get; set; 
    public DateTime CreationTs  get; set; 
    public string LastChangeUserId  get; set; 
    public DateTime LastChangeTs  get; set; 
    public byte StatusType  get; set; 
    public DateTime EntryTs  get; set; 
    public int ClientId  get; set; 
    public int RollcallId  get; set; 
    public int VehicleId  get; set; 
    public double Quantity  get; set; 
    public double OpeningOdo  get; set; 
    public double ClosingOdo  get; set; 
    public int OrderId  get; set; 

缺少类型映射配置或不支持的映射。 映射类型: IDataReader -> IList1 System.Data.IDataReader -> System.Collections.Generic.IList1[[SampleDemo.RollCall, SampleDemo, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]] 目的地路径: 列表`1 源值: System.Data.DataTableReader

【问题讨论】:

【参考方案1】:

首先Reset mapper和Creat Map,然后做mapper,把IList改为List:

AutoMapper.Mapper.Reset();
AutoMapper.Mapper.CreateMap<IDataReader, RollCall>();
result = AutoMapper.Mapper.Map<IDataReader, List<RollCall>>(data.CreateDataReader());

【讨论】:

以上是关于Automapper 数据表到列表的主要内容,如果未能解决你的问题,请参考以下文章

AutoMapper - 整数列表到对象列表[关闭]

如何使用 AutoMapper 使用 EntityFramework 使用嵌套列表更新对象?

使用 Automapper 将一个类实例映射到另一个类的列表

Automapper 自定义解析器源成员到目标对象列表映射问题

0.AutoMapper

如何使用 AutoMapper 将对象列表转换为整数列表?