【发布时间】:2018-11-12 09:34:45
【问题描述】:
我正在使用 AutoMapper 插件将 DataTable 映射到 C# Object。 这是我的代码:
public List<MyDto> GetReport()
{
List<MyDto> list = null;
var config = new MapperConfiguration(cfg =>
{
cfg.CreateMap<IDataReader, List<MyDto>>();
});
IMapper mapper = config.CreateMapper();
list = mapper.Map<IDataReader, List<MyDto>>(Odao.Inst.GetReport().Tables[0].CreateDataReader()).ToList();
return list;
}
我的 MyDto 类看起来像这样
public class MyDto
{
public int EmployeeId { get; set; }
public string FullName { get; set; }
}
在这里,数据从我的数据访问层正确返回,但是当它映射到对象时,列表为空。我这里有什么遗漏吗?
【问题讨论】:
-
不能用NHibernate从数据库中获取数据吗?像
list = sessionService.GetDefaultSession().Query<MyDto>()这样的东西。据我所知,您无法使用 AutoMapper 从数据库中获取数据,还是我错了? -
数据正在使用此行返回。
Odao.Inst.GetReport().Tables[0]但是,此数据到对象映射不起作用 -
如果您尝试
cfg.CreateMap<IDataReader, List<MyDto>>().ReverseMap()只是为了看看会发生什么? -
运气不好
cfg.CreateMap<IDataReader, List<MyDto>>().ReverseMap()
标签: c# object datatable dataset automapper