我从不使用自动映射器,但很多人用它来映射两个不同的对象。我正在阅读几个代码片段和放大器。这篇文章展示了我们如何使用自动映射器将数据表数据映射到Person实体类。
我真的不知道自动映射器可用于从数据表数据中填充实体类。
这里有一个像
这样的指南using (IDataReader dr = DatabaseContext.ExecuteReader(command))
{
if (dr.HasRows)
{
AutoMapper.Mapper.CreateMap<IDataReader, ProductModel>();
return AutoMapper.Mapper.Map<IDataReader, IList<ProductModel>>(dr);
}
return null;
}
http://www.geekytidbits.com/automapper-with-datatables/
我看到很少有人使用CreateMap() function and few use DynamicMap()
。所以我想知道这两个函数有什么区别?
当我们应该使用CreateMap()函数&amp;什么时候应该使用DynamicMap()函数? 如果可能的话请用示例代码&amp;我们应该使用的情况。
public class Person {
public string First_Name { get; set; }
public string Last_Name { get; set; }
public string User_Name { get; set; }
}
List<Person> people = AutoMapper.Mapper.DynamicMap<IDataReader, List<Person>>(
sourceDataTable.CreateDataReader());
我们应该使用DynamicMap()函数编写一行代码吗?因为当我们使用CreateMap()函数时我们需要说出两个映射对象的名称,但是当我们使用DynamicMap()时,我们可以在一行中完成所有操作。我理解得当,或者DynamicMap()函数的实际内容或目的是不同的?
另一个问题是假设我的实体类属性名称不同且数据表列名称不同,那么我们如何从数据表中填充我的实体类?
假设数据类型不同,那么如何处理这种情况?数据表列类型是int但实体类字段类型是long还是double ....那么我们如何构建和存储数据呢?
如果可能的话,请让我知道我在这里提出的代码示例。感谢。