CreateMap()&的区别是什么? Auto mapper中的DynamicMap()函数c#

时间:2014-08-25 10:57:19

标签: c# automapper

我从不使用自动映射器,但很多人用它来映射两个不同的对象。我正在阅读几个代码片段和放大器。这篇文章展示了我们如何使用自动映射器将数据表数据映射到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 ....那么我们如何构建和存储数据呢?

如果可能的话,请让我知道我在这里提出的代码示例。感谢。

0 个答案:

没有答案