我对AutoMapper
在我的Windows服务中,当我创建从IDataReader
到List object
的映射时,它仅在我运行服务时才第一次运行。
一旦我停止服务并再次运行它,AutoMapper就无法映射。以下是我的代码:
物业类
public class Employee
{
public int Id { get; set; }
public string Name { get; set; }
public string Number { get; set; }
}
实际实施
var employeeData = DataHelper.ExecuteReader("Select Id, Name, Number from dbo.Employee");
var employees = new List<Employee>();
employees = employeeData.MapToList<List<Employee>>();
通用扩展方法
public static T MapToList<T>(this DataTable reader) where T : class
{
Mapper.CreateMap<IDataReader, T>();
// Mapper.AssertConfigurationIsValid();
return Mapper.Map<IDataReader, T>(reader.CreateDataReader());
}
除此之外,我注意到当我清理解决方案并再次运行服务时,它开始工作。
我无法确定它为什么会这样。
答案 0 :(得分:0)
鉴于您的表格字段与Employee
的属性具有相同的名称,您应该可以这样做(没有任何显式的映射配置):
var employeeData = DataHelper.ExecuteReader("Select Id, Name, Number from dbo.Employee");
var employees = AutoMapper.Mapper.DynamicMap<IDataReader, List<Employee>>(employeeData.CreateDataReader());